On 1/11/23 16:27, Chen, Yian wrote:It could be something wrong in my Simics simulation environment.
It works by accident, then.It seems we are implicitly relying on the on stac() and clac()Yes, I tested with clearcpuid=smap.
calls that are added for SMAP. Have you tried running with SMAP
disabled i.e "clearcpuid=smap"?
clearcpuid=smap means that the kernel should be running as if
CPUID.(EAX=07H,ECX=0H):EBX.SMAP[bit 20]==0. STAC/CLAC should #UD in
that case.
The only reason that it happens to work is that STAC/CLAC apparentlySure, I will add the dependency.
actually continue to work even if CR4.SMAP==0.
I'm actually a _bit_ surprised by this, but I bet there's a good reason
for it.
In any case, please just make LASS dependent on SMAP. It's the right
thing to do on several levels.