Date: Tue, 2 Oct 2007 01:14:20 -0700 (PDT) From: Jeff Roberson <jroberson@chesapeake.net> To: NIIMI Satoshi <sa2c@sa2c.net> Cc: freebsd-current@freebsd.org, freebsd-threads@freebsd.org Subject: Re: sched_yield() is very slow when other threads are busy on FreeBSD-current Message-ID: <20071002011337.Q6669@10.0.0.1> In-Reply-To: <46FD4B09.20006@sa2c.net> References: <46FD4B09.20006@sa2c.net>
next in thread | previous in thread | raw e-mail | index | archive | help
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 <assert.h> > #include <stdio.h> > #include <pthread.h> > > #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--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20071002011337.Q6669>