search for: arch_futex_atomic_op_inus

Displaying 10 results from an estimated 10 matches for "arch_futex_atomic_op_inus".

2019 May 09
2
[RFC PATCH V2] vhost: don't use kmap() to log dirty pages
Vhost log dirty pages directly to a userspace bitmap through GUP and kmap_atomic() since kernel doesn't have a set_bit_to_user() helper. This will cause issues for the arch that has virtually tagged caches. The way to fix is to keep using userspace virtual address. Fortunately, futex has arch_futex_atomic_op_inuser() which could be used for setting a bit to user. Note: - There're archs (few non popular ones) that don't implement futex helper, we can't log dirty pages. We can fix them e.g for non virtually tagged archs implement a kmap fallback on top or simply disable LOG_ALL features of...
2019 May 09
2
[RFC PATCH V2] vhost: don't use kmap() to log dirty pages
Vhost log dirty pages directly to a userspace bitmap through GUP and kmap_atomic() since kernel doesn't have a set_bit_to_user() helper. This will cause issues for the arch that has virtually tagged caches. The way to fix is to keep using userspace virtual address. Fortunately, futex has arch_futex_atomic_op_inuser() which could be used for setting a bit to user. Note: - There're archs (few non popular ones) that don't implement futex helper, we can't log dirty pages. We can fix them e.g for non virtually tagged archs implement a kmap fallback on top or simply disable LOG_ALL features of...
2019 May 10
2
[RFC PATCH V2] vhost: don't use kmap() to log dirty pages
...y to a userspace bitmap through GUP and >> kmap_atomic() since kernel doesn't have a set_bit_to_user() >> helper. This will cause issues for the arch that has virtually tagged >> caches. The way to fix is to keep using userspace virtual >> address. Fortunately, futex has arch_futex_atomic_op_inuser() which >> could be used for setting a bit to user. >> >> Note: >> - There're archs (few non popular ones) that don't implement futex >> helper, we can't log dirty pages. We can fix them e.g for non >> virtually tagged archs implement a kmap f...
2019 May 10
2
[RFC PATCH V2] vhost: don't use kmap() to log dirty pages
...y to a userspace bitmap through GUP and >> kmap_atomic() since kernel doesn't have a set_bit_to_user() >> helper. This will cause issues for the arch that has virtually tagged >> caches. The way to fix is to keep using userspace virtual >> address. Fortunately, futex has arch_futex_atomic_op_inuser() which >> could be used for setting a bit to user. >> >> Note: >> - There're archs (few non popular ones) that don't implement futex >> helper, we can't log dirty pages. We can fix them e.g for non >> virtually tagged archs implement a kmap f...
2019 May 13
5
[PATCH net] vhost: don't use kmap() to log dirty pages
Vhost log dirty pages directly to a userspace bitmap through GUP and kmap_atomic() since kernel doesn't have a set_bit_to_user() helper. This will cause issues for the arch that has virtually tagged caches. The way to fix is to keep using userspace virtual address. Fortunately, futex has arch_futex_atomic_op_inuser() which could be used for setting a bit to user. Note there're several cases that futex helper can fail e.g a page fault or the arch that doesn't have the support. For those cases, a simplified get_user()/put_user() pair protected by a global mutex is provided as a fallback. The fallback...
2019 May 13
5
[PATCH net] vhost: don't use kmap() to log dirty pages
Vhost log dirty pages directly to a userspace bitmap through GUP and kmap_atomic() since kernel doesn't have a set_bit_to_user() helper. This will cause issues for the arch that has virtually tagged caches. The way to fix is to keep using userspace virtual address. Fortunately, futex has arch_futex_atomic_op_inuser() which could be used for setting a bit to user. Note there're several cases that futex helper can fail e.g a page fault or the arch that doesn't have the support. For those cases, a simplified get_user()/put_user() pair protected by a global mutex is provided as a fallback. The fallback...
2019 May 09
0
[RFC PATCH V2] vhost: don't use kmap() to log dirty pages
...ty pages directly to a userspace bitmap through GUP and > kmap_atomic() since kernel doesn't have a set_bit_to_user() > helper. This will cause issues for the arch that has virtually tagged > caches. The way to fix is to keep using userspace virtual > address. Fortunately, futex has arch_futex_atomic_op_inuser() which > could be used for setting a bit to user. > > Note: > - There're archs (few non popular ones) that don't implement futex > helper, we can't log dirty pages. We can fix them e.g for non > virtually tagged archs implement a kmap fallback on top or simply...
2019 May 14
0
[PATCH net] vhost: don't use kmap() to log dirty pages
...ty pages directly to a userspace bitmap through GUP and > kmap_atomic() since kernel doesn't have a set_bit_to_user() > helper. This will cause issues for the arch that has virtually tagged > caches. The way to fix is to keep using userspace virtual > address. Fortunately, futex has arch_futex_atomic_op_inuser() which > could be used for setting a bit to user. > > Note there're several cases that futex helper can fail e.g a page > fault or the arch that doesn't have the support. For those cases, a > simplified get_user()/put_user() pair protected by a global mutex is > provid...
2019 May 10
0
[RFC PATCH V2] vhost: don't use kmap() to log dirty pages
On 2019/5/10 ??10:59, Jason Wang wrote: >>> >>> ? ????? r = get_user_pages_fast(log, 1, 1, &page); >> OK so the trick is that page is pinned so you don't expect >> arch_futex_atomic_op_inuser below to fail.? get_user_pages_fast >> guarantees page is not going away but does it guarantee PTE won't be >> invaidated or write protected? > > > Good point, then I think we probably need to do manual fixup through > fixup_user_fault() if arch_futex_atomic_op_in_use...
2019 May 13
0
[PATCH net] vhost: don't use kmap() to log dirty pages
...ty pages directly to a userspace bitmap through GUP and > kmap_atomic() since kernel doesn't have a set_bit_to_user() > helper. This will cause issues for the arch that has virtually tagged > caches. The way to fix is to keep using userspace virtual > address. Fortunately, futex has arch_futex_atomic_op_inuser() which > could be used for setting a bit to user. > > Note there're several cases that futex helper can fail e.g a page > fault or the arch that doesn't have the support. For those cases, a > simplified get_user()/put_user() pair protected by a global mutex is > provid...