Don't allow unmapped I/O. The pmap isn't quite up to the task. Add a
comment to this effect and switch the default. My old AT91SAM9G20 now boots, fsck's the SD card and runs w/o an issue for the first time since a 9.1-ish stable build I did a few years ago. Problems with unmapped I/O: o un-page-aligned I/O requests to devices fail (notably fsck and newfs). o write-back caching was totally broken. write-through caching needed to be enabled. o Even page-aligned I/O requests sometimes failed for reasons not thoroughly investigated. Suggested by: ian@ MFC after: 2 days
This commit is contained in:
parent
844da2bca6
commit
545ec37cd0
@ -4310,7 +4310,13 @@ pmap_copy_page(vm_page_t src, vm_page_t dst)
|
||||
pmap_copy_page_func(VM_PAGE_TO_PHYS(src), VM_PAGE_TO_PHYS(dst));
|
||||
}
|
||||
|
||||
int unmapped_buf_allowed = 1;
|
||||
/*
|
||||
* We have code to do unmapped I/O. However, it isn't quite right
|
||||
* an causes un-page-aligned I/O to devices to fail (most notably
|
||||
* newfs or fsck). We give up a little performance to do this, but
|
||||
* we trade that for rock-solid stability so it is a good trade.
|
||||
*/
|
||||
int unmapped_buf_allowed = 0;
|
||||
|
||||
void
|
||||
pmap_copy_pages(vm_page_t ma[], vm_offset_t a_offset, vm_page_t mb[],
|
||||
|
Loading…
Reference in New Issue
Block a user