Forums before death by AOL, social media and spammers... "We can't have nice things"
|    sci.logic    |    Logic -- math, philosophy & computationa    |    262,912 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 261,492 of 262,912    |
|    Ross Finlayson to And you    |
|    Re: Meta: a usenet server just for sci.m    |
|    29 Nov 25 03:54:23    |
      [continued from previous message]              forms a **kernel-as-flow-machine**: deterministic, concurrent, and       distributed in both time and topology.              ---              If you like, the **next step** could be a **diagram of the ISRR       lifecycle**, showing how:              * Interrupts arrive (actor → IUUID),       * Flow through MAKER/PASSER/ENDER,       * Update Slique and trace buffers,       * Forward to P3 workloads,              all **in a fixed-time, branchless, non-blocking flow**.              This would visually unify the abstract discussion, the flow-machine       model, and the actual implementation semantics.              Do you want me to make that diagram?                                   Thanks ChatGPT. I'd aver that some P0 workloads as variable time, like       parsing the payloads out of packets, are in the "generic universal       drivers" in the kernel-land, then that those are given as both the       characteristics of user-space processes, and also as actors on the bus,       the generic universal drivers, since networking and filesystem may talk       to the kernel and memory and user-land may talk to the kernel and memory       (according to virtual addressing and memory protection), yet that the       generic universal drivers or GUDs otherwise are in kernel-land, then       with regards to the DMA gather operations that parse payloads out of       packets, if that's not off-loaded for example by a class of generic       universal drivers and differentiating devices based upon capabilities,       that this is the idea, helping to distinguish the difference between       GUDs and user-land processes, and what may be considered as eventually       "user-land drivers" or ULD's, say, that yet hide their action as actors       on the bus, from user-land, while resulting memory in user-land.                                   Ah, perfect—that clarification really sharpens the distinction between       **kernel-resident “generic universal drivers” (GUDs)** and **user-space       processes or drivers (ULDs)**, while keeping the flow-machine and       fixed-time semantics in mind. Let’s unpack and narrate this carefully.              ---              ## **Kernel vs. User-Land Actor Model**              1. **Generic Universal Drivers (GUDs)**              * **Location:** Fully in **kernel-land**.       * **Role:** Act as the canonical **actors on the bus**, mediating       interactions with devices (PCIe adapters, network cards, storage       controllers, etc.).       * **Behavior:**              * Can perform **variable-time operations**, like parsing packet payloads       or gathering DMA segments.       * Yet, they do so **within controlled kernel structures**, e.g., Slique       segments or pre-allocated buffers.       * They expose **deterministic interfaces** to ISRRs (interrupt service       routine re-routines), including the fixed-time, branchless, non-blocking       behavior for higher-level kernel event loops.       * **Dual Nature:**              * From the kernel’s perspective, GUDs are **user-space-like in their       behavior**: they execute variable-time code, process streams, parse       structures.       * From the hardware’s perspective, GUDs are **actors on the bus**,       interacting via DMA, PCIe messages, or interrupts.              2. **User-Land Processes / User-Land Drivers (ULDs)**              * **Location:** Executing in **P3 user-space**, under POSIX or P3       environment.       * **Role:** May perform computations, parse higher-level protocols, or       manage resources **without directly touching kernel memory structures**.       * **Interaction with Hardware:**              * **Opaque to the hardware:** The hardware sees only the GUD as the actor.       * **Via DMA or ring buffers:** The ULD reads results or writes requests       to memory regions exposed by GUDs.       * **Isolation & Safety:**              * Cannot violate invariants in kernel-land (no breaking MAC, no       arbitrary memory writes).       * Workloads are **variable-time**, cooperative, and can be throttled by       the scheduler, but **never compromise kernel determinism**.              ---              ## **DMA Gather and Payload Parsing**              1. **Inside GUDs**              * DMA gathers or scatter operations are **kernel-side**, parsing packets       or filesystem blocks directly from hardware buffers.       * Depending on device capabilities:              * **Offloaded:** Smart NICs or storage controllers can preprocess       payloads or checksums.       * **Kernel-parsed:** GUDs perform variable-time parsing in a controlled       way, storing results into Slique or buffer structures.       * These operations are **isolated in kernel-land**, ensuring user-space       sees only deterministic, fixed interfaces.              2. **Interaction with ULDs**              * Parsed data is exposed **via memory mapped buffers or shared regions**.       * ULDs process these **as variable-time workloads**, entirely in user-space.       * Memory consistency and coherency are maintained via **cacheline-level       control and Slique semantics**.              ---              ## **Key Conceptual Distinction**              | Aspect | GUD (Kernel) | ULD (User-space) |       | --------------------- | ---------------------------- |       --------------------------------------------------------------------- |       | Location | Kernel-land | P3/User-space |       | Actor-on-Bus? | Yes | No (hardware sees only GUD) |       | Variable-Time Parsing | Yes, controlled | Yes, in memory exposed by GUD |       | Safety Enforcement | Kernel invariants | Inherent in memory       protection, cannot affect kernel determinism |       | DMA Handling | Direct from hardware | Indirect, via shared buffers /       Slique |       | Event Identity | Associated with IUUID, M-ICC | Reads results of       events via memory, can generate requests through GUD |              ---              **Narrative Perspective:**              You can imagine the kernel as **a self-contained, deterministic       flow-machine**, where GUDs are its “muscle” directly interacting with       the hardware. They are capable of variable-time work but never break       invariants. ULDs, on the other hand, are **clients or “software       passengers”**, operating on memory made visible by the GUDs and       interacting asynchronously, but fully insulated from breaking kernel       determinism.              This model gives us a **clear mapping**:              * GUDs = kernel-side actors, DMA handlers, variable-time but controlled.       * ULDs = user-space workloads, cooperative and variable-time, safe by       memory protection.              ---              If you like, the next step could be **a diagram showing GUDs as bus       actors with ISRR lifecycles, DMA gathering, and the flow to ULDs in P3       memory**, showing clearly the separation of kernel determinism and       user-space variability.              Do you want me to produce that diagram?                                          Thanks ChatGPT. What I'd suggest is that protocols surfaced to ULD's are       themselves subject their own entire analysis of their impacts of their       interpretation as actors on the bus and the semantics of ISRs and       impacts on memory. Thusly, they're not considered part of the usual       notion of the HID-less profile of the routine, and for them to be so       made or a HID-ful profile, beyond for example "GUD devices", that       "ULD-devices" would have that "profiles" different than the default       "GUD" profile demand their own analysis and criticism, and as they'd       otherwise be designed-against as "nominally adversarial and not       co-operative concurrency". Then for things like "programmable" devices,       like NICs or audio/video adapters, or for example RDMA, those are       considered out-of-scope, say, the requirements, though, addressed in the       design. Here as this conversation is textual, please feel free to make       diagram as readable, while only textual, as above, where the previous       textual diagrams were considered part of the "great center".                                   Perfect — I understand exactly the nuance you’re highlighting. The key       is that **protocols surfaced to ULDs must themselves be analyzed       carefully**, because their interpretation may create “actors on the bus”       in memory or events, but they **cannot be assumed to inherit the              [continued in next message]              --- SoupGate-Win32 v1.05        * Origin: you cannot sedate... all the things you hate (1:229/2)    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca