[[!meta copyright="Copyright © 2007, 2008, 2010, 2011, 2012, 2013 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] # Implementation * [[filetype]] option * [[Hurd-specific_extensions]] * [[Page_cache]] * [[metadata_caching]] * [[internal_allocator]] ## Large Stores The `ext2fs` translator from the upstream Hurd code base can only handle file systems with sizes of less than roughly 2 GiB. [[!tag open_issue_hurd]] ### Ognyan's Work * Ognyan Kulev, [[*Supporting Large ext2 File Systems in the Hurd*|ogi-fosdem2005.mgp]], 2005, at FOSDEM * Ognyan Kulev, [[large_stores]] * Ognyan's patch lifts this limitation (and is being used in the [[Debian_GNU/Hurd_distribution|running/debian]]), but it introduces another incompatibility: `ext2fs` then only supports block sizes of 4096 bytes. Smaller block sizes are commonly automatically selected by `mke2fs` when using small backend stores, like floppy devices. #### IRC, freenode, #hurd, 2012-06-30 at least having the same api in the debian package and the git source would be great (in reference to the large store patch ofc) braunr: the api part could be merged perhaps it's very small apparently braunr: the large store patch is a sad story. when it was first submitted, one of the maintainers raised some concerns. the other didn't share these (don't remember who is who), but the concerned one never followed up with details. so it has been in limbo ever since. tschwinge once promised to take it up, but didn't get around to it so far. plus, the original author himself mentioned once that he didn't consider it finished... antrik: it's clearly not finished there are XXXs here and there it's called an RC1 and RC2 is mentioned in the release notes youpi: well, that doesn't stop most other projects from commiting stuff... including most emphatically the original Hurd code :-) what do you refer to my "that" ? :) "XXX" right at the time it made sense to delay applying but I guess by nowadays standard we should just as well commit it it works enough for Debian, already there is just one bug I nkow about the apt database file keeps haveing the wrong size, fixed by e2fsck youpi: remember that patch should be fixed in the offset declaration in diskfs.h I don't remember about that did we fix it in the debian package? nope you had issues when fixing it, didn't you? (I don't remember where I can find the details about this) i changed it, recompiled hurd and installed it, started a perl rebuild and when running one of the two lfs tests it hard locked the vm after ext2fs was taking 100% cpu for a bit i don't exclude i could have done something stupid on my side though or there could just be actual issues, uncovered here which can be quite probable ##### IRC, freenode, #hurd, 2013-03-19 youpi: i'm back on polishing the large store patch did you remember seeing something else than the bzero/memset out-of-scope changes ? (i mean, readily noticeable) I don't remember ok the original code already assumes mmap succeeds is it ok to consider the patch can do the same ? I'd say so ok youpi: actually, it looks like a good part of the patch isn't related to large stores for example, in ext2fs/inode.c, there are calls to dino_ref/dino_deref hum i'm not sure at all these have anything to do with handling large stores but dino_ref is introduced by this patch, isn't it? it replaces dino yes, it replaces it because the dino() approach can't work beyond 2GiB i see youpi: i'd like to replace the recursive call to disk_cache_block_ref with a goto, is that fine with you ? looks ok to me better than relying on tail recursion that's the idea :) #### [[libpager]] API change ##### IRC, freenode, #hurd, 2013-03-04 youpi: i don't remember exactly your answer when i asked about considering the ext2 large store patch for merging there's just an API change that it introduces but otherwise I'd say we should just do it ok I've just checked the API change again it's simply adding a notify_on_evict parameter and a pager_notify_evict callback yes I'd say we mostly need to polish this ah, there is the same parameter on diskfs_start_disk_pager ##### IRC, freenode, #hurd, 2013-04-23 and i'm working again on the ext2fs large store patch i finished separating the libpager interface change from the rest, as Thomas suggested, so a new version should be ready soon #### `EXT2FS_DEBUG` ##### IRC, freenode, #hurd, 2013-03-04 youpi: do we want EXT2FS_DEBUG defined upstream ? I don't really have an opinion on this stuffing it in the large store patch is not good of course I wonder whether we want it by default. it is currently defined by the patch (in the debian package i mean) I've just seen that yes i won't include it upstream, and if we decide to keep this behaviour, we can add a patch just for that or a define err a configure option ok ## Sync Interval [[!tag open_issue_hurd]] ### IRC, freenode, #hurd, 2012-10-08 btw, how about we increase our ext2 sync interval to 30 seconds, like others do ? not really because others do it that way, but because it severely breaks performance on the hurd and 30 seems like a reasonable amount (better than 5 at least) That would be a nice improvement, but only after writeback throttling is implemented. # Documentation * *