FreeBSD Bugzilla – Attachment 140597 Details for
Bug 187238
[amd64] [patch] vm.pmap.pcid_enabled="1" causes Java to coredump in FBSD 10
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
pr187238.patch
pr187238.patch (text/x-diff), 1.71 KB, created by
Henrik Gulbrandsen
on 2014-03-23 12:03:00 UTC
(
hide
)
Description:
pr187238.patch
Filename:
MIME Type:
Creator:
Henrik Gulbrandsen
Created:
2014-03-23 12:03:00 UTC
Size:
1.71 KB
patch
obsolete
>Index: sys/amd64/amd64/apic_vector.S >=================================================================== >--- sys/amd64/amd64/apic_vector.S (revision 263290) >+++ sys/amd64/amd64/apic_vector.S (working copy) >@@ -177,7 +177,10 @@ > jz 2f > swapgs > 2: >+ btl %eax,PM_ACTIVE(%rdx) >+ jc 3f > LK btcl %eax,PM_SAVE(%rdx) >+3: > SUPERALIGN_TEXT > invltlb_ret_rdx: > popq %rdx >Index: sys/amd64/amd64/pmap.c >=================================================================== >--- sys/amd64/amd64/pmap.c (revision 263290) >+++ sys/amd64/amd64/pmap.c (working copy) >@@ -367,7 +367,7 @@ > > static struct unrhdr pcid_unr; > static struct mtx pcid_mtx; >-int pmap_pcid_enabled = 0; >+int pmap_pcid_enabled = 1; > SYSCTL_INT(_vm_pmap, OID_AUTO, pcid_enabled, CTLFLAG_RDTUN, &pmap_pcid_enabled, > 0, "Is TLB Context ID enabled ?"); > int invpcid_works = 0; >@@ -838,7 +838,7 @@ > kernel_pmap->pm_pml4 = (pdp_entry_t *)PHYS_TO_DMAP(KPML4phys); > kernel_pmap->pm_cr3 = KPML4phys; > CPU_FILL(&kernel_pmap->pm_active); /* don't allow deactivation */ >- CPU_ZERO(&kernel_pmap->pm_save); >+ CPU_FILL(&kernel_pmap->pm_save); /* always superset of pm_active */ > TAILQ_INIT(&kernel_pmap->pm_pvchunk); > kernel_pmap->pm_flags = pmap_flags; > >@@ -1492,7 +1492,8 @@ > } else { > invltlb_globpcid(); > } >- CPU_CLR_ATOMIC(cpuid, &pmap->pm_save); >+ if (!CPU_ISSET(cpuid, &pmap->pm_active)) >+ CPU_CLR_ATOMIC(cpuid, &pmap->pm_save); > smp_invltlb(pmap); > } else { > other_cpus = all_cpus; >@@ -1526,7 +1527,8 @@ > } > } else if (CPU_ISSET(cpuid, &pmap->pm_active)) > invltlb(); >- CPU_CLR_ATOMIC(cpuid, &pmap->pm_save); >+ if (!CPU_ISSET(cpuid, &pmap->pm_active)) >+ CPU_CLR_ATOMIC(cpuid, &pmap->pm_save); > if (pmap_pcid_enabled) > CPU_AND(&other_cpus, &pmap->pm_save); > else
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 187238
: 140597