On Fri, Apr 24, 2009 at 04:20:56PM -0700, Andrew Morton wrote:If you don't recall problems revealed by this tracer or patches motivated by its results, I have examples. Soon after writing the first version of th workqueue tracer, I saw this incredible rate of unused workqueue on my box. Note that's still the case today (I've cut the worklet informations): # cat trace_stat/workqueues # CPU INSERTED EXECUTED TASKNAME:PID # | | | `-WORKFUNC # | | | | 0 9587 9650 events/0:9 0 0 0 cpuset:11 0 1384 1384 khelper:12 0 0 0 kintegrityd/0:178 0 385 385 kblockd/0:184 0 0 0 kacpid:190 0 0 0 kacpi_notify:191 0 0 0 tifm:498 0 24061 24061 ata/0:507 0 0 0 ata_aux:511 0 0 0 aio/0:871 0 0 0 crypto/0:897 0 0 0 scsi_tgtd/0:2368 0 0 0 iscsi_eh:2387 0 0 0 kpsmoused:2521 0 0 0 hd-audio0:2660 0 0 0 krxrpcd/0:2745 0 147 147 reiserfs/0:2895 1 11023 11046 events/1:10 1 0 0 kintegrityd/1:181 1 293 293 kblockd/1:185 1 33783 33783 ata/1:509 1 0 0 aio/1:878 1 0 0 crypto/1:898 1 0 0 scsi_tgtd/1:2370 1 0 0 krxrpcd/1:2746 1 99 99 reiserfs/1:2896 27 threads. 15 are unused, 12 are used. And still, I've only two CPUS. More than half of my workqueues are unused. I also have a small config. I can't imagine the result with a distro config which enables a lot of options by default. I discovered it with this tracer. Then it brought me to write this patch: http://lkml.org/lkml/2009/1/31/184 Btw, if one day I can see something like async but which is able to accept work that _must_ be ran async in any case, then I'm still willing to rework this patch. Still with these same observations, I wrote this another one: http://lkml.org/lkml/2009/1/26/363 Without this tracer, I wouldn't have had the informations which motivated me to write these patches. And although they weren't accepted (the first is more about pending than refused, my bad), which is justified, they reveal a real problem. Who knows what kind of other things we can discover with worklet tracing? Frederic. --
| Jesse Barnes | Re: [stable] [BUG][PATCH] cpqphp: fix kernel NULL pointer dereference |
| Greg KH | [003/136] p54usb: add Zcomax XG-705A usbid |
| Magnus Damm | [PATCH 03/07] ARM: Use shared GIC entry macros on Realview |
| Oliver Neukum | Re: [Bug #13682] The webcam stopped working when upgrading from 2.6.29 to 2.6.30 |
| Martin Schwidefsky | Re: [PATCH] optimized ktime_get[_ts] for GENERIC_TIME=y |
git: | |
| Junio C Hamano | Re: Some advanced index playing |
| Jeff King | Re: confusion over the new branch and merge config |
| Robin Rosenberg | Re: cvs2svn conversion directly to git ready for experimentation |
| Linus Torvalds | git binary size... |
| Ævar Arnfjörð Bjarmason | Re: Challenge with Git-Bash |
| Linux Kernel Mailing List | md: move allocation of ->queue from mddev_find to md_probe |
| Linux Kernel Mailing List | md: raid0: Represent zone->zone_offset in sectors. |
| Linux Kernel Mailing Li |
