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?