#include "tests.h" #include "machine.h" #include "thread.h" #include "map.h" #include "debug.h" int test__thread_mg_share(int subtest __maybe_unused) { struct machines machines; struct machine *machine; /* thread group */ struct thread *leader; struct thread *t1, *t2, *t3; struct map_groups *mg; /* other process */ struct thread *other, *other_leader; struct map_groups *other_mg; /* * This test create 2 processes abstractions (struct thread) * with several threads and checks they properly share and * maintain map groups info (struct map_groups). * * thread group (pid: 0, tids: 0, 1, 2, 3) * other group (pid: 4, tids: 4, 5) */ machines__init(&machines); machine = &machines.host; /* create process with 4 threads */ leader = machine__findnew_thread(machine, 0, 0); t1 = machine__findnew_thread(machine, 0, 1); t2 = machine__findnew_thread(machine, 0, 2); t3 = machine__findnew_thread(machine, 0, 3); /* and create 1 separated process, without thread leader */ other = machine__findnew_thread(machine, 4, 5); TEST_ASSERT_VAL("failed to create threads", leader && t1 && t2 && t3 && other); mg = leader->mg; TEST_ASSERT_EQUAL("wrong refcnt", atomic_read(&mg->refcnt), 4); /* test the map groups pointer is shared */ TEST_ASSERT_VAL("map groups don't match", mg == t1->mg); TEST_ASSERT_VAL("map groups don't match", mg == t2->mg); TEST_ASSERT_VAL("map groups don't match", mg == t3->mg); /* * Verify the other leader was created by previous call. * It should have shared map groups with no change in * refcnt. */ other_leader = machine__find_thread(machine, 4, 4); TEST_ASSERT_VAL("failed to find other leader", other_leader); /* * Ok, now that all the rbtree related operations were done, * lets remove all of them from there so that we can do the * refcounting tests. */ machine__remove_thread(machine, leader); machine__remove_thread(machine, t1); machine__remove_thread(machine, t2); machine__remove_thread(machine, t3); machine__remove_thread(machine, other); machine__remove_thread(machine, other_leader); other_mg = other->mg; TEST_ASSERT_EQUAL("wrong refcnt", atomic_read(&other_mg->refcnt), 2); TEST_ASSERT_VAL("map groups don't match", other_mg == other_leader->mg); /* release thread group */ thread__put(leader); TEST_ASSERT_EQUAL("wrong refcnt", atomic_read(&mg->refcnt), 3); thread__put(t1); TEST_ASSERT_EQUAL("wrong refcnt", atomic_read(&mg->refcnt), 2); thread__put(t2); TEST_ASSERT_EQUAL("wrong refcnt", atomic_read(&mg->refcnt), 1); thread__put(t3); /* release other group */ thread__put(other_leader); TEST_ASSERT_EQUAL("wrong refcnt", atomic_read(&other_mg->refcnt), 1); thread__put(other); machines__exit(&machines); return 0; } emove&id=11cd119d31a71b37c2362fc621f225e2aa12aea1'>root/include
AgeCommit message (Expand)AuthorFilesLines
2017-02-07net: pending_confirm is not used anymoreJulian Anastasov1-12/+2
2017-02-07net: add confirm_neigh method to dst_opsJulian Anastasov4-0/+42
2017-02-07sctp: add dst_pending_confirm flagJulian Anastasov2-4/+6
2017-02-07net: add dst_pending_confirm flag to skbuffJulian Anastasov2-0/+26
2017-02-07sock: add sk_dst_pending_confirm flagJulian Anastasov1-0/+12
2017-02-07net: phy: bcm7xxx: Add BCM74371 PHY IDFlorian Fainelli1-0/+1
2017-02-07net: phy: Allow pre-declaration of MDIO devicesFlorian Fainelli3-0/+23
2017-02-07net: dsa: Add support for platform dataFlorian Fainelli1-0/+6
2017-02-07net: dsa: Rename and export dev_to_net_device()Florian Fainelli1-0/+1
2017-02-07net: phy: Add 2000base-x, 2500base-x and rxaui modesAndrew Lunn1-0/+9
2017-02-07virtio_net: refactor freeze/restore logic into virtnet reset logicJohn Fastabend1-0/+4
2017-02-06net: dsa: introduce bridge notifierVivien Didelot1-0/+10
2017-02-06net: dsa: add switch notifierVivien Didelot1-0/+7
2017-02-06net-next: treewide use is_vlan_dev() helper function.Parav Pandit1-4/+2
2017-02-06net: remove ndo_neigh_{construct, destroy} from stacked devicesIdo Schimmel1-4/+0
2017-02-06can: rx-offload: Add support for timestamp based irq offloadingMarc Kleine-Budde1-1/+9
2017-02-06can: rx-offload: Add support for HW fifo based irq offloadingDavid Jander1-0/+51
2017-02-05net: remove __napi_complete()Eric Dumazet1-1/+0
2017-02-04net: ipv6: Change notifications for multipath add to RTA_MULTIPATHDavid Ahern1-0/+1
2017-02-04net: ipv6: Allow shorthand delete of all nexthops in multipath routeDavid Ahern1-1/+3
2017-02-03net: remove support for per driver ndo_busy_poll()Eric Dumazet2-5/+0
2017-02-03Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-nextDavid S. Miller11-40/+60
2017-02-03sched: cls_flower: expose priority to offloading netdeviceJiri Pirko1-0/+1
2017-02-03lib: Introduce priority array area managerJiri Pirko1-0/+76
2017-02-03list: introduce list_for_each_entry_from_reverse helperJiri Pirko1-0/+13
2017-02-03trace: rename trace_print_hex_seq arg and add kdocDaniel Borkmann2-3/+3
2017-02-03bridge: uapi: add per vlan tunnel infoRoopa Prabhu3-0/+13
2017-02-03vxlan: support fdb and learning in COLLECT_METADATA modeRoopa Prabhu1-0/+1
2017-02-03ip_tunnels: new IP_TUNNEL_INFO_BRIDGE flag for ip_tunnel_info modeRoopa Prabhu1-0/+1
2017-02-03net/sched: act_ife: Change to use ife moduleYotam Gigi2-10/+1
2017-02-03net: Introduce ife encapsulation moduleYotam Gigi3-0/+70
2017-02-03net/sched: act_ife: Unexport ife_tlv_meta_encodeYotam Gigi1-2/+0
2017-02-03tcp: add tcp_mss_clamp() helperEric Dumazet1-0/+9
2017-02-02net: add LINUX_MIB_PFMEMALLOCDROP counterEric Dumazet1-0/+1
2017-02-02net: phy: marvell: Add support for 88e1545 PHYAndrew Lunn1-0/+1
2017-02-02unix: add ioctl to open a unix socket file with O_PATHAndrey Vagin1-0/+2
2017-02-02net: phy: Marvell: Add mv88e6390 internal PHYAndrew Lunn1-0/+6
2017-02-02Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/netDavid S. Miller9-30/+40
2017-02-02netfilter: allow logging from non-init namespacesMichal Kubeček1-0/+3
2017-02-02ipvs: free ip_vs_dest structs when refcnt=0David Windsor1-1/+1
2017-02-02netfilter: merge ctinfo into nfct pointer storage areaFlorian Westphal2-17/+15
2017-02-02netfilter: guarantee 8 byte minalign for template addressesFlorian Westphal1-0/+2
2017-02-02netfilter: add and use nf_ct_set helperFlorian Westphal2-2/+9
2017-02-02skbuff: add and use skb_nfct helperFlorian Westphal2-4/+11
2017-02-02netfilter: reduce direct skb->nfct usageFlorian Westphal1-3/+6
2017-02-02netfilter: conntrack: no need to pass ctinfo to error handlerFlorian Westphal1-1/+1