Date: Wed, 02 Oct 1996 16:57:24 +0200 From: Poul-Henning Kamp <phk@critter.tfs.com> To: dyson@freebsd.org Cc: heo@cslsun10.sogang.ac.kr (Heo Sung-Gwan), freebsd-hackers@freebsd.org, freebsd-fs@freebsd.org Subject: Re: vnode and cluster read-ahead Message-ID: <3531.844268244@critter.tfs.com> In-Reply-To: Your message of "Wed, 02 Oct 1996 09:39:42 CDT." <199610021439.JAA00980@dyson.iquest.net>
next in thread | previous in thread | raw e-mail | index | archive | help
In message <199610021439.JAA00980@dyson.iquest.net>, John Dyson writes: >> As a process A reads a file F *sequentially* the fields(v_maxra, v_ralen, et >c) of the vnode of F increases. As a result read-ahead of next cluster happens >. >> But when a process B opens F and reads it the values of the fields are >> changed. So the process A's read-ahead is disturbed whenever process B is >> rescheduled. >> >> I think the fields for read-ahead must be in struct file rather than vnode. >> There exists one vnode for a file but a file may be open serveral times. >> >That is closer to correct. I am not sure that the struct file is correct >either, but I think that you are on the right track. No, I don't agree. Process B will most likely find all it needs in the buffercache, and thus will not need read-ahead at all. How to implement this is not clear to me, but I think the best way would be to calculate the parameters and only if the extend the current read-ahead (v_maxra...) will they be employed. This would gracefully handle the case where process B overtakes process A in reading the file. -- Poul-Henning Kamp | phk@FreeBSD.ORG FreeBSD Core-team. http://www.freebsd.org/~phk | phk@login.dknet.dk Private mailbox. whois: [PHK] | phk@ref.tfs.com TRW Financial Systems, Inc. Future will arrive by its own means, progress not so.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3531.844268244>