On Tue, 2023-12-05 at 15:25 +0000, Song, Yoong Siang wrote: > On Monday, December 4, 2023 10:55 PM, Willem de Bruijn wrote: > > Jesper Dangaard Brouer wrote: > > > > > > > > > On 12/3/23 17:51, Song Yoong Siang wrote: > > > > This patch enables Launch Time (Time-Based Scheduling) support to XDP zero > > > > copy via XDP Tx metadata framework. > > > > > > > > Signed-off-by: Song Yoong Siang<yoong.siang.song@xxxxxxxxx> > > > > --- > > > > drivers/net/ethernet/stmicro/stmmac/stmmac.h | 2 ++ > > > > > > As requested before, I think we need to see another driver implementing > > > this. > > > > > > I propose driver igc and chip i225. > > Sure. I will include igc patches in next version. > > > > > > > The interesting thing for me is to see how the LaunchTime max 1 second > > > into the future[1] is handled code wise. One suggestion is to add a > > > section to Documentation/networking/xsk-tx-metadata.rst per driver that > > > mentions/documents these different hardware limitations. It is natural > > > that different types of hardware have limitations. This is a close-to > > > hardware-level abstraction/API, and IMHO as long as we document the > > > limitations we can expose this API without too many limitations for more > > > capable hardware. > > Sure. I will try to add hardware limitations in documentation. > > > > > I would assume that the kfunc will fail when a value is passed that > > cannot be programmed. > > > > In current design, the xsk_tx_metadata_request() dint got return value. > So user won't know if their request is fail. > It is complex to inform user which request is failing. > Therefore, IMHO, it is good that we let driver handle the error silently. > If the programmed value is invalid, the packet will be "dropped" / will never make it to the wire, right? That is clearly a situation that the user should be informed about. For RT systems this normally means that something is really wrong regarding timing / cycle overflow. Such systems have to react on that situation. > > > > What is being implemented here already exists for qdiscs. The FQ > > qdisc takes a horizon attribute and > > > > " > > when a packet is beyond the horizon > > at enqueue() time: > > - either drop the packet (default policy) > > - or cap its delivery time to the horizon. > > " > > commit 39d010504e6b ("net_sched: sch_fq: add horizon attribute") > > > > Having the admin manually configure this on the qdisc based on > > off-line knowledge of the device is more fragile than if the device > > would somehow signal its limit to the stack. > > > > But I don't think we should add enforcement of that as a requirement > > for this xdp extension of pacing.