发明名称 Extended message block for network device drivers
摘要 The present invention manages memory buffers in network device drivers in a flexible operating system (e.g., the Solaris operating system) that increase performance of the operating system at high throughputs with no detriment to the flexible nature of the operating system. Embodiments of the present invention reuse the (same) allocated and dma_binded memory buffers again and again, eliminating the repeated memory management of each data packet. In one embodiment, an rx-descriptor ring is treated as a true circular ring. A new data structure named rxbuffer_id is also defined along with a device-freemsg( ) function. In another embodiment, a device driver allocates and links a memory block (e.g., a rxbuffer_id data structure) with a message block at the time of allocating the message block for relocating incoming data packets. The memory block contains all the needed information for reuse of the message block. In a further embodiment, the device-freemsg( ) function is called by the operating system utilizing the db_lastfree field of the dblk_t. The performance of the network device driver using the present invention is thus improved. The improvement in performance applies to all data packet sizes because CPU processing time is reduced. Moreover, the performance gain is further improved when the host machine (having the operating system using embodiments of the present invention) is used to route data packets because, for example, as the network driver of the host machine, it does not need to do any further copying and ddi_dma_addr_binding to route a received data packet.
申请公布号 US6826634(B2) 申请公布日期 2004.11.30
申请号 US20020167072 申请日期 2002.06.10
申请人 SUN MICROSYSTEMS, INC. 发明人 NATH RAMAN VISWA
分类号 G06F13/38;(IPC1-7):G06F13/28 主分类号 G06F13/38
代理机构 代理人
主权项
地址