This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libc/6816] Support for POWER7 VSX registers in *context routines


------- Additional Comments From sjmunroe at us dot ibm dot com  2008-10-16 16:53 -------
>> We want to allow user space applications continued API access to the context via
>> the get/set/swap context interface to the new VSX aware swapcontext syscall.

>The context shouldn't contain the new registers, that's the point.  The *context
>functions are function calls.  Hence registers which are not preserved don't
>have to be included in the context data structures.  This eliminates the
>versioning problem and it is exactly the way this is handled on x86.

That is true for getcontext but may not be true for set/swapcontext depending on
the source of the context (ie. signal frames).

So it seem like the setcontext and the kernels swapcontext syscall should handle
the larger context size. 

There is a separate question if the size_of(ucontext_t) includes the VSX state
or not. If as you suggest (this time) we can avoid the versioning for the user
state functions as long as the kernel swapcontext syscall recognizes that for
MSR:VSX =1 the context is a the bigger size. This would be the case for a signal
ucontext in an application using VSX.

It follows that for getcontext we only pass the current size and the kernel does
not set MSR:VSX even if VSX is use (because the new VSX state is volatile!).

-- 


http://sourceware.org/bugzilla/show_bug.cgi?id=6816

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]