On Sat, 23 Feb 2019, Jason Thorpe wrote:

> int     ufetch_8(const uint8_t *uaddr, uint8_t *valp);
> int     ufetch_16(const uint16_t *uaddr, uint16_t *valp);
> int     ufetch_32(const uint32_t *uaddr, uint32_t *valp);
> #ifdef _LP64
> int     ufetch_64(const uint64_t *uaddr, uint64_t *valp);
> #endif

etc.

I'd prefer to return the fetched value and have an out of band error 
check.  

With this API the routine does a userland load, then a store into kernel 
memory.  Then the kernel needs to reload that value.  On modern CPUs 
memory accesses tend to be sloooooow.

Eduardo

Reply via email to