FreeBSD Bugzilla – Attachment 199094 Details for
Bug 233088
Kernel Panic, mainly during high I/O stress (poudriere bulk)
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
proposed patch
pmap_enter_nokern.diff (text/plain), 1.75 KB, created by
Mark Johnston
on 2018-11-09 17:04:44 UTC
(
hide
)
Description:
proposed patch
Filename:
MIME Type:
Creator:
Mark Johnston
Created:
2018-11-09 17:04:44 UTC
Size:
1.75 KB
patch
obsolete
>diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c >index e095ccc69edf..b76ad380c927 100644 >--- a/sys/vm/vm_fault.c >+++ b/sys/vm/vm_fault.c >@@ -269,6 +269,7 @@ static int > vm_fault_soft_fast(struct faultstate *fs, vm_offset_t vaddr, vm_prot_t prot, > int fault_type, int fault_flags, boolean_t wired, vm_page_t *m_hold) > { >+ pmap_t pmap; > vm_page_t m, m_map; > #if (defined(__aarch64__) || defined(__amd64__) || (defined(__arm__) && \ > __ARM_ARCH >= 6) || defined(__i386__)) && VM_NRESERVLEVEL > 0 >@@ -284,6 +285,7 @@ vm_fault_soft_fast(struct faultstate *fs, vm_offset_t vaddr, vm_prot_t prot, > vm_page_busied(m)) || m->valid != VM_PAGE_BITS_ALL) > return (KERN_FAILURE); > m_map = m; >+ pmap = fs->map->pmap; > psind = 0; > #if (defined(__aarch64__) || defined(__amd64__) || (defined(__arm__) && \ > __ARM_ARCH >= 6) || defined(__i386__)) && VM_NRESERVLEVEL > 0 >@@ -292,8 +294,8 @@ vm_fault_soft_fast(struct faultstate *fs, vm_offset_t vaddr, vm_prot_t prot, > rounddown2(vaddr, pagesizes[m_super->psind]) >= fs->entry->start && > roundup2(vaddr + 1, pagesizes[m_super->psind]) <= fs->entry->end && > (vaddr & (pagesizes[m_super->psind] - 1)) == (VM_PAGE_TO_PHYS(m) & >- (pagesizes[m_super->psind] - 1)) && >- pmap_ps_enabled(fs->map->pmap)) { >+ (pagesizes[m_super->psind] - 1)) && pmap != kernel_pmap && >+ pmap_ps_enabled(pmap)) { > flags = PS_ALL_VALID; > if ((prot & VM_PROT_WRITE) != 0) { > /* >@@ -316,7 +318,7 @@ vm_fault_soft_fast(struct faultstate *fs, vm_offset_t vaddr, vm_prot_t prot, > } > } > #endif >- rv = pmap_enter(fs->map->pmap, vaddr, m_map, prot, fault_type | >+ rv = pmap_enter(pmap, vaddr, m_map, prot, fault_type | > PMAP_ENTER_NOSLEEP | (wired ? PMAP_ENTER_WIRED : 0), psind); > if (rv != KERN_SUCCESS) > return (rv);
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 233088
:
199094
|
199188
|
199259