Linux ethtool:设置/取消设置自动否定、接收/发送暂停

Linux ethtool:设置/取消设置自动否定、接收/发送暂停,linux,linux-kernel,ethernet,Linux,Linux Kernel,Ethernet,我在查看ethtool的源代码,特别是在功能do_spause()中,可以启用/禁用自动协商、接收/发送暂停。我注意到,首先它发出ioctl()forETHTOOL\u GPAUSEPARAM命令,即它获取当前设置,它们是相同的,它不会更改任何内容,否则它将发出ioctl()withETHTOOL\u SPAUSEPARAM命令并设置新参数 这是什么原因?这是优化还是避免链路中断的方法?ethtool\u操作针对每种设备类型分别实施。当设置一个已经设置好的值时,假设所有IOCTL都是良性的是鲁莽

我在查看
ethtool
的源代码,特别是在功能
do_spause()
中,可以启用/禁用自动协商、接收/发送暂停。我注意到,首先它发出
ioctl()
for
ETHTOOL\u GPAUSEPARAM
命令,即它获取当前设置,它们是相同的,它不会更改任何内容,否则它将发出
ioctl()
with
ETHTOOL\u SPAUSEPARAM
命令并设置新参数


这是什么原因?这是优化还是避免链路中断的方法?

ethtool\u操作针对每种设备类型分别实施。当设置一个已经设置好的值时,假设所有IOCTL都是良性的是鲁莽的。内核中的实现如下所示:


谢谢您的评论。卸载功能设置也是如此吗?(请阅读当前卸载设置,如果已设置标志,请不要尝试执行此操作。)更改卸载与其他参数一样可能导致中断。