From owner-freebsd-threads@FreeBSD.ORG Tue Oct 2 08:11:38 2007 Return-Path: Delivered-To: freebsd-threads@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2517A16A421; Tue, 2 Oct 2007 08:11:38 +0000 (UTC) (envelope-from jroberson@chesapeake.net) Received: from webaccess-cl.virtdom.com (webaccess-cl.virtdom.com [216.240.101.25]) by mx1.freebsd.org (Postfix) with ESMTP id EAA6313C448; Tue, 2 Oct 2007 08:11:37 +0000 (UTC) (envelope-from jroberson@chesapeake.net) Received: from [192.168.1.103] (c-67-160-44-208.hsd1.wa.comcast.net [67.160.44.208]) (authenticated bits=0) by webaccess-cl.virtdom.com (8.13.6/8.13.6) with ESMTP id l928BVoG062374 (version=TLSv1/SSLv3 cipher=DHE-DSS-AES256-SHA bits=256 verify=NO); Tue, 2 Oct 2007 04:11:37 -0400 (EDT) (envelope-from jroberson@chesapeake.net) Date: Tue, 2 Oct 2007 01:14:20 -0700 (PDT) From: Jeff Roberson X-X-Sender: jroberson@10.0.0.1 To: NIIMI Satoshi In-Reply-To: <46FD4B09.20006@sa2c.net> Message-ID: <20071002011337.Q6669@10.0.0.1> References: <46FD4B09.20006@sa2c.net> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="0-1490414616-1191312860=:6669" Cc: freebsd-current@freebsd.org, freebsd-threads@freebsd.org Subject: Re: sched_yield() is very slow when other threads are busy on FreeBSD-current X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Oct 2007 08:11:38 -0000 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --0-1490414616-1191312860=:6669 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed On Sat, 29 Sep 2007, NIIMI Satoshi wrote: > Hi, > > I experienced sched_yield() is very slow when other threads are busy > on FreeBSD-current. Hello, Can you please try the enclosed patch and tell me if it addresses your problem? Thanks, Jeff > > When I run the program: > ------------------------------------------------ > #include > #include > #include > > #define NUM_THREAD (10) > > volatile int run = 0; > > void *start(void *p) > { > while (!run) > ; > return p; > } > > int main() > { > pthread_t th[NUM_THREAD]; > int i; > for (i = 0; i < NUM_THREAD; i++) { > assert(pthread_create(&th[i], NULL, start, NULL) == 0); > sched_yield(); > } > run = 1; > for (i = 0; i < NUM_THREAD; i++) > assert(pthread_join(th[i], NULL) == 0); > return 0; > } > ------------------------------------------------ > The output of /usr/bin/time: > > FreeBSD 6.2-RELEASE, libthr, HZ=100, GENERIC kernel: > 0.55 real 0.55 user 0.00 sys > > FreeBSD 7-CURRENT, libthr, HZ=100, kernel > include GENERIC > nooptions INVARIANTS, INVARIANT_SUPPORT, WITNESS, WITNESS_SKIPSPIN: > 164.16 real 162.80 user 0.00 sys > > I tried SCHED_ULE too, but does not help so much. > > Increasing HZ helps to perform better, but still very slower than FreeBSD-6. > > Thanks, > -- > NIIMI Satoshi > _______________________________________________ > freebsd-threads@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-threads > To unsubscribe, send any mail to "freebsd-threads-unsubscribe@freebsd.org" > --0-1490414616-1191312860=:6669 Content-Type: TEXT/x-diff; charset=US-ASCII; name=relinquish.diff Content-Transfer-Encoding: BASE64 Content-ID: <20071002011420.S6669@10.0.0.1> Content-Description: Content-Disposition: attachment; filename=relinquish.diff SW5kZXg6IHNjaGVkXzRic2QuYw0KPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K UkNTIGZpbGU6IC9ob21lL25jdnMvc3JjL3N5cy9rZXJuL3NjaGVkXzRic2Qu Yyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTA1DQpkaWZmIC11IC1yMS4x MDUgc2NoZWRfNGJzZC5jDQotLS0gc2NoZWRfNGJzZC5jCTIxIFNlcCAyMDA3 IDA0OjEwOjIzIC0wMDAwCTEuMTA1DQorKysgc2NoZWRfNGJzZC5jCTIgT2N0 IDIwMDcgMDg6MDg6MzYgLTAwMDANCkBAIC0xMzI0LDggKzEzMjQsNiBAQA0K IHNjaGVkX3JlbGlucXVpc2goc3RydWN0IHRocmVhZCAqdGQpDQogew0KIAl0 aHJlYWRfbG9jayh0ZCk7DQotCWlmICh0ZC0+dGRfcHJpX2NsYXNzID09IFBS SV9USU1FU0hBUkUpDQotCQlzY2hlZF9wcmlvKHRkLCBQUklfTUFYX1RJTUVT SEFSRSk7DQogCVNDSEVEX1NUQVRfSU5DKHN3aXRjaF9yZWxpbnF1aXNoKTsN CiAJbWlfc3dpdGNoKFNXX1ZPTCwgTlVMTCk7DQogCXRocmVhZF91bmxvY2so dGQpOw0KSW5kZXg6IHNjaGVkX3VsZS5jDQo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09DQpSQ1MgZmlsZTogL2hvbWUvbmN2cy9zcmMvc3lzL2tlcm4vc2NoZWRf dWxlLmMsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjIwOQ0KZGlmZiAtdSAt cjEuMjA5IHNjaGVkX3VsZS5jDQotLS0gc2NoZWRfdWxlLmMJMjQgU2VwIDIw MDcgMDA6Mjg6NTQgLTAwMDAJMS4yMDkNCisrKyBzY2hlZF91bGUuYwkyIE9j dCAyMDA3IDA4OjA4OjQ1IC0wMDAwDQpAQCAtMjUwMiw4ICsyNTAyLDYgQEAN CiBzY2hlZF9yZWxpbnF1aXNoKHN0cnVjdCB0aHJlYWQgKnRkKQ0KIHsNCiAJ dGhyZWFkX2xvY2sodGQpOw0KLQlpZiAodGQtPnRkX3ByaV9jbGFzcyA9PSBQ UklfVElNRVNIQVJFKQ0KLQkJc2NoZWRfcHJpbyh0ZCwgUFJJX01BWF9USU1F U0hBUkUpOw0KIAlTQ0hFRF9TVEFUX0lOQyhzd2l0Y2hfcmVsaW5xdWlzaCk7 DQogCW1pX3N3aXRjaChTV19WT0wsIE5VTEwpOw0KIAl0aHJlYWRfdW5sb2Nr KHRkKTsNCg== --0-1490414616-1191312860=:6669--