Nick Piggin <nickpiggin@yahoo.com.au> writes:Not totally useless as you have mentioned they are accessed by the lru so we still need something there just not much. Of course it should be fixed. I just don't know if a backport makes sense. The problem once understood is hard to trigger and easy to avoid. Yes. We will be accessed via the LRU. Yes I knew that. The truth is whatever we do we will be visible to the LRU. My preferences run towards having something that is less of a special case then a new potentially huge cache that is completely unaccounted for, that we have to build and maintain all of the infrastructure for independently. The ramdisk code doesn't seem interesting enough long term to get people to do independent maintenance. With my patch we are on the road to being just like the ramdisk for maintenance purposes code except having a different GFP mask. I think I might have to send in a patch that renames block_invalidatepage to block_invalidate_page which is how everyone seems to be spelling it. Anyway nothing in the ramdisk code sets PagePrivate o block_invalidagepage should never be called, nor try_to_free_buffers for that matter. Well we each have different tastes. I think my patch is a sane sensible small incremental step that does just what is needed to fix the problem. It doesn't drag a lot of other stuff into the problem like a rewrite would so we can easily verify it. Quite true. I noticed the breakage in mine because the patch was so simple, and I only had to worry about one aspect. With a rewrite I missed it because there was so much other noise I couldn't see any issues. I did but but that is relatively minor. Using the pagecache this way for this purpose is a well established idiom in the kernel so I didn't figure I was introducing anything to hard to maintain. I am continuing to have the backing store pages visible to the VM, and from that perspective it is a smaller change then where we are today. Not that we can truly hide pages from the VM. The code in rd.c isn't terrible, and it isn't shit. There is only one fundamental problem with it. rd.c is fundamentally incompatible with the buffer cache. Currently rd.c is a legitimate if a bit ugly user of the page cache. The ugliness comes from working around the buffer cache placing buffer heads on it's pages. With my patch I stop using the same pages as the buffer cache which removes that one fundamental problem. Once we get the problem actually fixed I have no problem with cleaning up the code. I even have patches queued I just believe in only changing one thing at a time if I can. Eric -
| Heiko Carstens | [patch -mm] s390: struct bin_attribute changes |
| Andrew Morton | 2.6.25-rc2-mm1 |
| Eric W. Biederman | Re: [PATCH] kexec: force x86_64 arches to boot kdump kernels on boot cpu |
| Jan Engelhardt | intel iommu (Re: -mm merge plans for 2.6.23) |
git: | |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| Jens Axboe | Re: [BUG] New Kernel Bugs |
| Andrew Morton | Re: [PATCH] PHYLIB: IRQ event workqueue handling fixes |
