Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 239131 Details for
Bug 316371
32-bit PAE HV hardware limitation > 4GB memory
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
PAE sanitize e820 below 4GB
rhel_xen_hap_pae_sanitize_e820_below_4GB.patch (text/plain), 1.84 KB, created by
Bhavna Sarathy
on 2007-10-26 13:32:13 UTC
(
hide
)
Description:
PAE sanitize e820 below 4GB
Filename:
MIME Type:
Creator:
Bhavna Sarathy
Created:
2007-10-26 13:32:13 UTC
Size:
1.84 KB
patch
obsolete
>diff -r d5544050953e arch/x86/hvm/svm/svm.c >--- a/arch/x86/hvm/svm/svm.c Tue Oct 23 20:51:37 2007 -0400 >+++ b/arch/x86/hvm/svm/svm.c Wed Oct 24 19:32:33 2007 -0400 >@@ -734,6 +734,35 @@ static void svm_init_ap_context( > vmcb->cs.base = (cs_sel << 4); > } > >+#if CONFIG_PAGING_LEVELS == 3 >+/* Under 32bit PAE mode, nested paging can only translate up to 32bit guest >+ * physical address. In other words, guests can only have up to 4GB physical >+ * memory. This is an issue for 32bit PAE guests. To solve this problem, we >+ * remove guest e820 memory map entries which are beyond 4GB. >+ */ >+static void hap_sanitize_e820_map(void) >+{ >+ struct e820entry *e820entry; >+ unsigned char * e820_page; >+ unsigned char nr_map; >+ int i; >+ >+ e820_page = >+ map_domain_page(get_mfn_from_gpfn(E820_MAP_PAGE >> PAGE_SHIFT)); >+ e820entry = (struct e820entry *)(e820_page + E820_MAP_OFFSET); >+ nr_map = *((unsigned char *)(e820_page + E820_MAP_NR_OFFSET)); >+ >+ for (i=0; i < nr_map; i++) >+ { >+ if ( (e820entry[i].addr + e820entry[i].size) > 0xF0000000UL ) >+ break; >+ } >+ >+ *((unsigned char *)(e820_page + E820_MAP_NR_OFFSET)) = i; >+ unmap_domain_page(e820_page); >+} >+#endif >+ > static void svm_init_hypercall_page(struct domain *d, void *hypercall_page) > { > char *p; >@@ -754,6 +783,14 @@ static void svm_init_hypercall_page(stru > > /* Don't support HYPERVISOR_iret at the moment */ > *(u16 *)(hypercall_page + (__HYPERVISOR_iret * 32)) = 0x0b0f; /* ud2 */ >+ >+#if CONFIG_PAGING_LEVELS == 3 >+ /* This is the only domain level function invoked during initialization >+ * inside svm.c. We sanitize e820 here. >+ */ >+ if ( paging_mode_hap(d) ) >+ hap_sanitize_e820_map(); >+#endif > } > > static void save_svm_cpu_user_regs(struct vcpu *v, struct cpu_user_regs *ctxt)
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 316371
:
237931
|
239131
|
278811