Messages in this thread | | | Date | Wed, 10 Aug 2005 11:27:10 -0700 | From | Andrew Morton <> | Subject | Re: [PATCH] remove name length check in a workqueue |
| |
James Bottomley <James.Bottomley@SteelEye.com> wrote: > > On Wed, 2005-08-10 at 10:37 -0700, Andrew Morton wrote: > > > and anyway, it doesn't have to be unique; > > > set_task_comm just does a strlcpy from the name, so it will be truncated > > > (same as for a binary with > 15 character name). > > > > Yup. But it'd be fairly silly to go adding the /%d, only to have it > > truncated off again. > > Well, but the other alternative is that we hit arbitrary BUG_ON() limits > in systems that create numbered workqueues which is rather contrary to > our scaleability objectives, isn't it?
Another alternative is to stop passing in such long strings ;)
> > What's the actual problem? > > What I posted originally; the current SCSI format for a workqueue: > scsi_wq_%d hits the bug after the host number rises to 100, which has > been seen by some enterprise person with > 100 HBAs. > > The reason for this name is that the error handler thread is called > scsi_eh_%d; so we could rename all our threads to avoid this, but one > day someone will come along with a huge enough machine to hit whatever > limit we squeeze it down to.
OK, well scsi is using single-threaded workqueues anyway. So we could do:
if (singlethread) BUG_ON(strlen(name) > sizeof(task_struct.comm) - 1); else BUG_ON(strlen(name) > sizeof(task_struct.comm) - 1 - 4);
which gets you 10,000,000 HBAs. Enough?
Ho hum, OK, let's just kill the BUG_ON. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |