Bug 151452

Summary: vdso: should make sysenter (and maybe sysexit) work with exec-shield
Product: [Fedora] Fedora Reporter: Roland McGrath <roland>
Component: kernelAssignee: Roland McGrath <roland>
Status: CLOSED WORKSFORME QA Contact: Brian Brock <bbrock>
Severity: low Docs Contact:
Priority: medium    
Version: rawhideCC: mingo, wtogami
Target Milestone: ---   
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2005-04-06 08:17:46 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 151450    
Bug Blocks:    

Description Roland McGrath 2005-03-18 02:35:53 UTC
The sysenter variant of the vDSO cannot be used with exec-shield because of two
constraints in the sysexit instruction.  

First we should try using sysenter and not using sysexit, which may have a
performance improvement vs using int.

The first issue is conflicts with cs segment limits used by exec-shield.
sysexit cannot be used when cs segment limits are being used.  But, newer
processors have NX support and do not need to use segment limits.
We should conditionalize sysexit use on that.

The second issue is sysexit's constant return EIP value.
When using exec-shield, the correct value differs in each process.
It may be feasible to rewrite the MSR on context switches or something similar,
would have to compare the performance of this to the iret return path.

Comment 1 Roland McGrath 2005-03-18 03:25:39 UTC
Hmm, looks like Ingo already added some cleverness to address the sysexit trouble.
And, sysenter use is disabled when NX is not available.

So, this is probably all good to go when bug #151450 is fixed.

Comment 2 Roland McGrath 2005-04-06 08:17:46 UTC
sysenter works fine when the generic vdso issues are fixed