Did the same on GPUs/Xeon Phi, including in the texture units.  Very useful
mechanism for abstracting compute with random access characteristics.

Paul

On Wed, Jan 7, 2026, 1:35 p.m. ron minnich <[email protected]> wrote:

> what we had planned for harvey was a good deal simpler: designate a part
> of the address space as a "bounce fault to user" space area.
>
> When a page fault in that area occurred, info about the fault was sent to
> an fd (if  it was opened) or a note handler.
>
> user could could handle the fault or punt, as it saw fit. The fixup was
> that user mode had to get the data to satisfy the fault, then tell the
> kernel what to do.
>
> This is much like the 35-years-ago work we did on AIX, called
> external pagers at the time; or the more recent umap work,
> https://computing.llnl.gov/projects/umap, used fairly widely in HPC.
>
> If you go this route, it's a bit less complex than what you are proposing.
>
> On Wed, Jan 7, 2026 at 1:09 PM Bakul Shah via 9fans <[email protected]>
> wrote:
>
>>
>>
>> > On Jan 7, 2026, at 8:41 AM, [email protected] wrote:
>> >
>> > Quoth Bakul Shah via 9fans <[email protected]>:
>> >> I have this idea that will horrify most of you!
>> >>
>> >> 1. Create an mmap device driver. You ask it to a new file handle which
>> you use to communicate about memory mapping.
>> >> 2. If you want to mmap some file, you open it and write its file
>> descriptor along with other parameters (file offset, base addr, size, mode,
>> flags) to your mmap file handle.
>> >> 3. The mmap driver sets up necessary page table entries but doesn't
>> actually fetch any data before returning from the write.
>> >> 4. It can asynchronously kick off io requests on your behalf and fixup
>> page table entries as needed.
>> >> 5. Page faults in the mmapped area are serviced by making appropriate
>> read/write calls.
>> >> 6. Flags can be used to indicate read-ahead or write-behind for
>> typical serial access.
>> >> 7. Similarly msync, munmap etc. can be implemented.
>> >>
>> >> In a sneaky way this avoids the need for adding any mmap specific
>> syscalls! But the underlying work would be mostly similar in either case.
>> >>
>> >> The main benefits of mmap are reduced initial latency , "pay as you
>> go" cost structure and ease of use. It is certainly more expensive than
>> reading/writing the same amount of data directly from a program.
>> >>
>> >> No idea how horrible a hack is needed to implement such a thing or
>> even if it is possible at all but I had to share this ;-)
>> >
>> > To what end? The problems with mmap have little to do with adding a
>> syscall;
>> > they're about how you do things like communicating I/O errors.
>> Especially
>> > when flushing the cache.
>> >
>> > Imagine the following setup -- I've imported 9p.io:
>> >
>> >        9fs 9pio
>> >
>> > and then I map a file from it:
>> >
>> >        mapped = mmap("/n/9pio/plan9/lib/words", OWRITE);
>> >
>> > Now, I want to write something into the file:
>> >
>> >        *mapped = 1234;
>> >
>> > The cached version of the page is dirty, so the OS will
>> > eventually need to flush it back with a 9p Twrite; Let's
>> > assume that before this happens, the network goes down.
>> >
>> > How do you communicate the error with userspace?
>> 
>> This was just a brainwave but...
>> 
>> You have a (control) connection with the mmap device to
>> set up mmap so might as well use it to convey errors!
>> This device would be strictly local to where a program
>> runs.
>> 
>> I'd even consider allowing a separate process to mmap,
>> by making an address space a first class object. That'd
>> move more stuff out of the kernel and allow for more
>> interesting/esoteric uses.
> *9fans <https://9fans.topicbox.com/latest>* / 9fans / see discussions
> <https://9fans.topicbox.com/groups/9fans> + participants
> <https://9fans.topicbox.com/groups/9fans/members> + delivery options
> <https://9fans.topicbox.com/groups/9fans/subscription> Permalink
> <https://9fans.topicbox.com/groups/9fans/Te8d7c6e48b5c075b-Mae5eb9a90d72008533969f26>
>

------------------------------------------
9fans: 9fans
Permalink: 
https://9fans.topicbox.com/groups/9fans/Te8d7c6e48b5c075b-Mf3cfeeb18fd00292d3f9063f
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription

Reply via email to