-
Notifications
You must be signed in to change notification settings - Fork 292
xenopsd: set xen-platform-pci-bar-uc key in xenstore #6566
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -49,6 +49,8 @@ let default_vbd_backend_kind = ref "vbd" | |
|
||
let ca_140252_workaround = ref false | ||
|
||
let xen_platform_pci_bar_uc = ref true | ||
|
||
let action_after_qemu_crash = ref None | ||
|
||
let additional_ballooning_timeout = ref 120. | ||
|
@@ -207,6 +209,14 @@ let options = | |
, (fun () -> string_of_bool !ca_140252_workaround) | ||
, "Workaround for evtchn misalignment for legacy PV tools" | ||
) | ||
; ( "xen-platform-pci-bar-uc" | ||
, Arg.Bool (fun x -> xen_platform_pci_bar_uc := x) | ||
, (fun () -> string_of_bool !xen_platform_pci_bar_uc) | ||
, "Controls whether, when the VM starts in HVM mode, the Xen PCI MMIO used \ | ||
by grant tables is mapped as Uncached (UC, the default) or WriteBack \ | ||
(WB, the workaround). WB mapping could improve performance of devices \ | ||
using grant tables. This is useful on AMD platform only." | ||
Comment on lines
+217
to
+218
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If I understood Roger's explanation, the current behaviour behaviour of both hvmloader and guest kernels is that they set the uncacheable bit for for the foreign mapping for AMD systems. What I don't quite grasp is:
I'm asking this because it looks to me this is a per-guest setting, and logically it should be overrdable by the platform data coming from the guest template. Having this setting be per-host can be dangerous if the setting has negative side-effects since not all guest have the same kernel. Alternatively, if this workaround doesn't have negative side-effects, it might be worthwhile to simply set it to 0 and have the free perf boost on some of the VMs. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Your understanding is good. I didn't see any regression or negative effect in my tests (Intel or AMD with windows guests or linux guest without memremap patch). There is not effect on those configurations. But, of course, there are configurations I didn't test. I agree with you. I'll work on the platform data to set this parameter. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. From my testing there is a massive performance improvement on AMD when this is set to 0. On Intel this is mostly a noop because Xen already sets it to WB (UC=0) via another mechanism. |
||
) | ||
; ( "additional-ballooning-timeout" | ||
, Arg.Set_float additional_ballooning_timeout | ||
, (fun () -> string_of_float !additional_ballooning_timeout) | ||
|
Uh oh!
There was an error while loading. Please reload this page.