Messages in this thread | | | Date | Fri, 23 Jan 2004 17:23:02 -0500 | From | Randy Appleton <> | Subject | Re: Unneeded Code Found?? |
| |
Nick Piggin wrote:
>>> Randy Appleton wrote: >>> >>>> I think I have found some useless code in the Linux kernel >>>> in the block request functions. >>>> >>>> >>>> I have modified the __make_request function in ll_rw_blk.c. >>>> Now every request for a block off the hard drive is logged. >>>> >>>> >>>> The function __make_request has code to attempt to merge the current >>>> block request with some contigious existing request for better >>>> performance. This merge function keeps a one-entry cache pointing >>>> to the >>>> last block request made. An attempt is made to merge the current >>>> request with the last request, and if that is not possible then >>>> a search of the whole queue is done, looking at merger possibililites. >>>> >>>> >>>> Looking at the data from my logs, I notice that over 50% of all >>>> requests >>>> can be merged. However, a merge only ever happens between the >>>> current request and the previous one. It never happens between the >>>> current request and any other request that might be in the queue (for >>>> more than 50,000 requests examined). >>>> >>>> >>>> This is true for several test runs, including "daily usage" and doing >>>> two kernel compiles at the same time. I have only tested on a >>>> single-CPU machine. >>>> >> Does anyone know that this code is actualy useful? Has anyone ever >> seen it actually do a merge of consecutive >> data accesses for requests that were not issued themselves >> consequtively? >> > Yes it gets used. > > I think its a lot more common with direct io and when you have lots of > processes.
I'm not arguing, but how do you know this? I'm trying to convince myself that the code is used, and at least on my system a few days of general use, followed by heavy parallel compiles, doesn't use the code even once.
I have not tested direct I/O. Otherwise it looks unused.
- 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/
| |