Hi, (I have a Netra X1 also affected by this bug).
Stuart Henderson wrote: > could it be this? > > CVSROOT: /cvs > Module name: src > Changes by: [email protected] 2014/09/03 18:36:00 > > Modified files: > sys/sys : pool.h > sys/kern : subr_pool.c > > Log message: > rework how pools with large pages (>PAGE_SIZE) are implemented. > > this moves the size of the pool page (not arch page) out of the > pool allocator into struct pool. this lets us create only two pools > for the automatically determined large page allocations instead of > 256 of them. > > while here support using slack space in large pages for the > pool_item_header by requiring km_alloc provide pool page aligned > memory. > > lastly, instead of doing incorrect math to figure how how many arch > pages to use for large pool pages, just use powers of two. > > ok mikeb@ This is a really, really long shot, but could the calculation here on (unsigned int) pgsize underflow and return true when it shouldn't?? + * Decide whether to put the page header off page to avoid + * wasting too large a part of the page. Off-page page headers + * go into an RB tree, so we can match a returned item with + * its header based on the page address. + */ + if (pgsize - (size * items) > sizeof(struct pool_item_header)) { + flags |= PR_PHINPAGE; + off = pgsize - sizeof(struct pool_item_header); Thank you! Regards, -- Steven Chamberlain [email protected]
