Re: async-io API registration for 2.5.29

Jeff Dike
2002-07-30T18:04:42Z

bcrl@redhat.com said:
> This is something that x86-64 gets wrong by not requiring the
> vsyscall page to need an mmap into the user's address space: UML
> cannot emulate vsyscalls by faking the mmap.

Andrea and I talked about this a bit at KS.

IIRC, he wants vsyscall addresses to be hardcoded constants in libc. He
doesn't want the overhead of doing an indirect call through whatever
address you get from the vsyscall_mmap() syscall.

At first glance, that breaks any hope of UML being able to virtualize that.
Any vsyscall executed by a UML process will go straight into the host kernel,
completely bypassing UML.

We did come up with a scheme that sounded to me like it would work.

/me tries to remember what it was :-)

I think it was that we provide a syscall to move the vsyscall page. UML
will use that to relocate the host vsyscalls and map its own page there.
The final piece is that UML would be linked with a different vsyscall address.

Andrea, does that sound right?

I don't particularly like this scheme - the get-the-address-at-runtime
approach is far cleaner, but it does satisfy Andrea's need for speed.

Jeff