Re: [RESEND][PATCH 1/6] x86/bugs: Add asm helpers for executing VERW

From: Pawan Gupta
Date: Mon Oct 23 2023 - 15:10:05 EST


On Mon, Oct 23, 2023 at 11:08:06AM -0700, Josh Poimboeuf wrote:
> On Fri, Oct 20, 2023 at 07:21:34PM -0700, Pawan Gupta wrote:
> > On Sat, Oct 21, 2023 at 02:33:47AM +0100, Andrew Cooper wrote:
> > > On 21/10/2023 2:18 am, Pawan Gupta wrote:
> > > > On Sat, Oct 21, 2023 at 12:55:45AM +0100, Andrew Cooper wrote:
> > > >> Also it avoids playing games with hiding data inside an instruction.
> > > >> It's a neat trick, but the neater trick is avoid it whenever possible.
> > > > Thanks for the pointers. I think verw in 32-bit mode won't be able to
> > > > address the operand outside of 4GB range.
> > >
> > > And?  In a 32bit kernel, what lives outside of a 4G range?
> > >
> > > > Maybe this is fine or could it
> > > > be a problem addressing from e.g. KVM module?
> > >
> > > RIP-relative addressing is disp32.  Which is the same as it is for
> > > direct calls.
> > >
> > > So if your module is far enough away for VERW to have issues, you've got
> > > far more basic problems to solve first.
> >
> > Sorry, I raised the wrong problem. In 64-bit mode, verww only has 32-bit
> > of relative addressing, so memory operand has to be within 4GB of
> > callsite. That could be a constraint.
>
> Even on x86-64, modules are mapped within 4GB of the kernel, so I don't
> think that's a concern.

You are correct, modules are indeed mapped within 4GB of the kernel. So
what Andrew suggested is feasible. Is that your preference?