[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v6 4/5] x86/mm: Reject invalid cacheability in PV guests by default
On 05.01.2023 21:28, Andrew Cooper wrote: > On 22/12/2022 10:31 pm, Demi Marie Obenour wrote: >> diff --git a/docs/misc/xen-command-line.pandoc >> b/docs/misc/xen-command-line.pandoc >> index >> 424b12cfb27d6ade2ec63eacb8afe5df82465451..0230a7bc17cbd4362a42ea64cea695f31f5e0f86 >> 100644 >> --- a/docs/misc/xen-command-line.pandoc >> +++ b/docs/misc/xen-command-line.pandoc >> @@ -1417,6 +1417,17 @@ detection of systems known to misbehave upon accesses >> to that port. >> ### idle_latency_factor (x86) >> > `= <integer>` >> >> +### invalid-cacheability (x86) >> +> `= allow | deny | trap` >> + >> +> Default: `deny` in release builds, otherwise `trap` >> + >> +Specify what happens when a PV guest tries to use one of the reserved >> entries in >> +the PAT. `deny` causes the attempt to be rejected with -EINVAL, `allow` >> allows >> +the attempt, and `trap` causes a general protection fault to be raised. >> +Currently, the reserved entries are marked as uncacheable in Xen's PAT, but >> this >> +will change if new memory types are added, so guests must not rely on it. >> + > > This wants to be scoped under "pv", and not a top-level option. Current > parsing is at the top of xen/arch/x86/pv/domain.c > > How about `pv={no-}oob-pat`, and parse it into the opt_pv_oob_pat boolean ? > > There really is no need to distinguish between deny and trap. IMO, > injecting #GP unilaterally is fine (to a guest expecting the hypercall > to succeed, -EINVAL vs #GP makes no difference, but #GP is far more > useful to a human trying to debug issues here), but I could be talked > into putting that behind a CONFIG_DEBUG if other feel strongly. What is or is not useful to guests is guesswork. They might be "handling" failure with BUG(), in which case they'd still see a backtrace. So to me, as previously said, injecting #GP in the case here can only reasonably be a debugging aid (and hence be dependent upon DEBUG). Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |