Hi folks! According to git commit e3089a (https://reviews.freebsd.org/D1463) FreeBSD 12.0 i386 uses separate address spaces for kernel and user space. So basically two memory areas, one in each space, can have the same address. Is this possible with FreeBSD 12.0? Is this likely to happen? On my opinion, this is also very expensive in terms of performance. Any copy{in,out} has to flush the TLB. (http://fxr.watson.org/fxr/source/i386/i386/copyout_fast.s#L91) Why are you still using this 4G/4G approach? Regards, Alex -- Technische Universit?t Dortmund Alexander Lochmann PGP key: 0xBC3EF6FD Otto-Hahn-Str. 16 phone: +49.231.7556141 D-44227 Dortmund fax: +49.231.7556116 http://ess.cs.tu-dortmund.de/Staff/al -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: OpenPGP digital signature URL: <http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20181217/580e9636/attachment.sig>
Alexander Lochmann writes:> According to git commit e3089a (https://reviews.freebsd.org/D1463) > FreeBSD 12.0 i386 uses separate address spaces for kernel and user > space. So basically two memory areas, one in each space, can have the > same address. > Is this possible with FreeBSD 12.0? Is this likely to happen?If the userspace program and the kernel address happen to overlap, the system will deal with it. There's not anything to worry about. As to whether or not it's likely to happen -- I'm not sure about that. I expect the default stack and heap space locations for a fresh process have changed due to this change, but it should not matter.> On my opinion, this is also very expensive in terms of performance. > Any copy{in,out} has to flush the TLB. > (http://fxr.watson.org/fxr/source/i386/i386/copyout_fast.s#L91) > Why are you still using this 4G/4G approach?The complete split between the user address space and kernel address space mapping is largely due to the mitigation of the Spectre attacks, as I understand things. To have both the kernel and userspace mapped at the same time, can be used to extract information from the kernel that should not be made available. I think it falls into the "slower but safer" class of change. Someone will, undoubtedly, correct me if I'm wrong. -Kurt
On Mon, Dec 17, 2018 at 02:51:48PM +0100, Alexander Lochmann wrote:> Hi folks! > > According to git commit e3089a (https://reviews.freebsd.org/D1463) > FreeBSD 12.0 i386 uses separate address spaces for kernel and user > space. So basically two memory areas, one in each space, can have the > same address. > Is this possible with FreeBSD 12.0? Is this likely to happen?The feature was added to HEAD during this summer, before stable/12 was branched.> > On my opinion, this is also very expensive in terms of performance. > Any copy{in,out} has to flush the TLB. > (http://fxr.watson.org/fxr/source/i386/i386/copyout_fast.s#L91) > Why are you still using this 4G/4G approach?Because it is needed for i386 to self-host, in modern world 1G KVA is too small, and because it provides Meltdown mitigation.