How many packets are pending inside a network interface?

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP

0

I have an application that sends lot of traffic over an UDP socket, every packet is sent on 2 interfaces: enp2s0 (1Gbit ethernet device) and enx00808a8eba78 (100Mbit usb-ethernet device).
The maximum socket send buffer is the default (212992 bytes), and it is full most of the time when the traffic is running:

root@punk:~# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
udp        0 211968 0.0.0.0:x11-2           0.0.0.0:*   

Data in qdisc queue of the two interfaces is about 40k:

root@punk:~# tc -s qdisc show dev enp2s0
qdisc pfifo_fast 0: root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
 Sent 1697909529 bytes 1136534 pkt (dropped 0, overlimits 0 requeues 12) 
 backlog 0b 0p requeues 12 

root@punk:~# tc -s qdisc show dev enx00808a8eba78
qdisc pfifo_fast 0: root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
 Sent 1675952337 bytes 1121840 pkt (dropped 0, overlimits 0 requeues 55) 
 backlog 43326b 29p requeues 55 

Since 200k of data is pending in the socket but only 40k is queued in the second qdisc, I assume that the remaining 160k are pending inside the slow interface driver (enx00808a8eba78).

Is there a way to check how many packets (or data) is pending for transmission in a USB device or, more generically, in a network device?
Something like the number of DMA buffers ready for TX but not sent yet.

share|improve this question

  • You would be far better off without the USB ethernet.

    – Rui F Ribeiro
    Jan 28 at 17:54

0

I have an application that sends lot of traffic over an UDP socket, every packet is sent on 2 interfaces: enp2s0 (1Gbit ethernet device) and enx00808a8eba78 (100Mbit usb-ethernet device).
The maximum socket send buffer is the default (212992 bytes), and it is full most of the time when the traffic is running:

root@punk:~# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
udp        0 211968 0.0.0.0:x11-2           0.0.0.0:*   

Data in qdisc queue of the two interfaces is about 40k:

root@punk:~# tc -s qdisc show dev enp2s0
qdisc pfifo_fast 0: root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
 Sent 1697909529 bytes 1136534 pkt (dropped 0, overlimits 0 requeues 12) 
 backlog 0b 0p requeues 12 

root@punk:~# tc -s qdisc show dev enx00808a8eba78
qdisc pfifo_fast 0: root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
 Sent 1675952337 bytes 1121840 pkt (dropped 0, overlimits 0 requeues 55) 
 backlog 43326b 29p requeues 55 

Since 200k of data is pending in the socket but only 40k is queued in the second qdisc, I assume that the remaining 160k are pending inside the slow interface driver (enx00808a8eba78).

Is there a way to check how many packets (or data) is pending for transmission in a USB device or, more generically, in a network device?
Something like the number of DMA buffers ready for TX but not sent yet.

share|improve this question

  • You would be far better off without the USB ethernet.

    – Rui F Ribeiro
    Jan 28 at 17:54

0

0

0

I have an application that sends lot of traffic over an UDP socket, every packet is sent on 2 interfaces: enp2s0 (1Gbit ethernet device) and enx00808a8eba78 (100Mbit usb-ethernet device).
The maximum socket send buffer is the default (212992 bytes), and it is full most of the time when the traffic is running:

root@punk:~# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
udp        0 211968 0.0.0.0:x11-2           0.0.0.0:*   

Data in qdisc queue of the two interfaces is about 40k:

root@punk:~# tc -s qdisc show dev enp2s0
qdisc pfifo_fast 0: root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
 Sent 1697909529 bytes 1136534 pkt (dropped 0, overlimits 0 requeues 12) 
 backlog 0b 0p requeues 12 

root@punk:~# tc -s qdisc show dev enx00808a8eba78
qdisc pfifo_fast 0: root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
 Sent 1675952337 bytes 1121840 pkt (dropped 0, overlimits 0 requeues 55) 
 backlog 43326b 29p requeues 55 

Since 200k of data is pending in the socket but only 40k is queued in the second qdisc, I assume that the remaining 160k are pending inside the slow interface driver (enx00808a8eba78).

Is there a way to check how many packets (or data) is pending for transmission in a USB device or, more generically, in a network device?
Something like the number of DMA buffers ready for TX but not sent yet.

share|improve this question

I have an application that sends lot of traffic over an UDP socket, every packet is sent on 2 interfaces: enp2s0 (1Gbit ethernet device) and enx00808a8eba78 (100Mbit usb-ethernet device).
The maximum socket send buffer is the default (212992 bytes), and it is full most of the time when the traffic is running:

root@punk:~# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
udp        0 211968 0.0.0.0:x11-2           0.0.0.0:*   

Data in qdisc queue of the two interfaces is about 40k:

root@punk:~# tc -s qdisc show dev enp2s0
qdisc pfifo_fast 0: root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
 Sent 1697909529 bytes 1136534 pkt (dropped 0, overlimits 0 requeues 12) 
 backlog 0b 0p requeues 12 

root@punk:~# tc -s qdisc show dev enx00808a8eba78
qdisc pfifo_fast 0: root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
 Sent 1675952337 bytes 1121840 pkt (dropped 0, overlimits 0 requeues 55) 
 backlog 43326b 29p requeues 55 

Since 200k of data is pending in the socket but only 40k is queued in the second qdisc, I assume that the remaining 160k are pending inside the slow interface driver (enx00808a8eba78).

Is there a way to check how many packets (or data) is pending for transmission in a USB device or, more generically, in a network device?
Something like the number of DMA buffers ready for TX but not sent yet.

kernel linux-kernel network-interface

share|improve this question

share|improve this question

share|improve this question

share|improve this question

asked Jan 28 at 17:42

flydutchflydutch

12

12

  • You would be far better off without the USB ethernet.

    – Rui F Ribeiro
    Jan 28 at 17:54

  • You would be far better off without the USB ethernet.

    – Rui F Ribeiro
    Jan 28 at 17:54

You would be far better off without the USB ethernet.

– Rui F Ribeiro
Jan 28 at 17:54

You would be far better off without the USB ethernet.

– Rui F Ribeiro
Jan 28 at 17:54

1 Answer
1

active

oldest

votes

0

Seems there isn’t a way to retrieve the device queue length from userspace.


BTW, some details if someone is interested:

usbnet devices keep track of the queued TX packets using the field txq.qlen of the struct usbnet. Maximum TX queue length is defined by field tx_qlen of struct usbnet.

In my example I have 60 (tx_qlen) packets queued in the USB driver and (more or less) 30 packets in the qdisc, each one carrying 1500 bytes of data. Since socket buffer is calculated considering the skb->truesize (i.e. skb data + skb structure size), each packet is 2.3k:

2.3k * (60 + 30) ~= 200k

This confirm that 138k of the socket buffer are consumed by packets queued in the network driver, while 69k of the socket buffer are in the qdisc queue: there aren’t other packets queued somewhere else in the kernel.

share|improve this answer

    Your Answer

    StackExchange.ready(function() {
    var channelOptions = {
    tags: “”.split(” “),
    id: “106”
    };
    initTagRenderer(“”.split(” “), “”.split(” “), channelOptions);

    StackExchange.using(“externalEditor”, function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using(“snippets”, function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: ‘answer’,
    autoActivateHeartbeat: false,
    convertImagesToLinks: false,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: null,
    bindNavPrevention: true,
    postfix: “”,
    imageUploader: {
    brandingHtml: “Powered by u003ca class=”icon-imgur-white” href=”https://imgur.com/”u003eu003c/au003e”,
    contentPolicyHtml: “User contributions licensed under u003ca href=”https://creativecommons.org/licenses/by-sa/3.0/”u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href=”https://stackoverflow.com/legal/content-policy”u003e(content policy)u003c/au003e”,
    allowUrls: true
    },
    onDemand: true,
    discardSelector: “.discard-answer”
    ,immediatelyShowMarkdownHelp:true
    });

    }
    });

    draft saved
    draft discarded

    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin(‘.new-post-login’, ‘https%3a%2f%2funix.stackexchange.com%2fquestions%2f497260%2fhow-many-packets-are-pending-inside-a-network-interface%23new-answer’, ‘question_page’);
    }
    );

    Post as a guest

    Required, but never shown

    1 Answer
    1

    active

    oldest

    votes

    1 Answer
    1

    active

    oldest

    votes

    active

    oldest

    votes

    active

    oldest

    votes

    0

    Seems there isn’t a way to retrieve the device queue length from userspace.


    BTW, some details if someone is interested:

    usbnet devices keep track of the queued TX packets using the field txq.qlen of the struct usbnet. Maximum TX queue length is defined by field tx_qlen of struct usbnet.

    In my example I have 60 (tx_qlen) packets queued in the USB driver and (more or less) 30 packets in the qdisc, each one carrying 1500 bytes of data. Since socket buffer is calculated considering the skb->truesize (i.e. skb data + skb structure size), each packet is 2.3k:

    2.3k * (60 + 30) ~= 200k
    

    This confirm that 138k of the socket buffer are consumed by packets queued in the network driver, while 69k of the socket buffer are in the qdisc queue: there aren’t other packets queued somewhere else in the kernel.

    share|improve this answer

      0

      Seems there isn’t a way to retrieve the device queue length from userspace.


      BTW, some details if someone is interested:

      usbnet devices keep track of the queued TX packets using the field txq.qlen of the struct usbnet. Maximum TX queue length is defined by field tx_qlen of struct usbnet.

      In my example I have 60 (tx_qlen) packets queued in the USB driver and (more or less) 30 packets in the qdisc, each one carrying 1500 bytes of data. Since socket buffer is calculated considering the skb->truesize (i.e. skb data + skb structure size), each packet is 2.3k:

      2.3k * (60 + 30) ~= 200k
      

      This confirm that 138k of the socket buffer are consumed by packets queued in the network driver, while 69k of the socket buffer are in the qdisc queue: there aren’t other packets queued somewhere else in the kernel.

      share|improve this answer

        0

        0

        0

        Seems there isn’t a way to retrieve the device queue length from userspace.


        BTW, some details if someone is interested:

        usbnet devices keep track of the queued TX packets using the field txq.qlen of the struct usbnet. Maximum TX queue length is defined by field tx_qlen of struct usbnet.

        In my example I have 60 (tx_qlen) packets queued in the USB driver and (more or less) 30 packets in the qdisc, each one carrying 1500 bytes of data. Since socket buffer is calculated considering the skb->truesize (i.e. skb data + skb structure size), each packet is 2.3k:

        2.3k * (60 + 30) ~= 200k
        

        This confirm that 138k of the socket buffer are consumed by packets queued in the network driver, while 69k of the socket buffer are in the qdisc queue: there aren’t other packets queued somewhere else in the kernel.

        share|improve this answer

        Seems there isn’t a way to retrieve the device queue length from userspace.


        BTW, some details if someone is interested:

        usbnet devices keep track of the queued TX packets using the field txq.qlen of the struct usbnet. Maximum TX queue length is defined by field tx_qlen of struct usbnet.

        In my example I have 60 (tx_qlen) packets queued in the USB driver and (more or less) 30 packets in the qdisc, each one carrying 1500 bytes of data. Since socket buffer is calculated considering the skb->truesize (i.e. skb data + skb structure size), each packet is 2.3k:

        2.3k * (60 + 30) ~= 200k
        

        This confirm that 138k of the socket buffer are consumed by packets queued in the network driver, while 69k of the socket buffer are in the qdisc queue: there aren’t other packets queued somewhere else in the kernel.

        share|improve this answer

        share|improve this answer

        share|improve this answer

        edited Jan 30 at 7:17

        answered Jan 29 at 16:27

        flydutchflydutch

        12

        12

            draft saved
            draft discarded

            Thanks for contributing an answer to Unix & Linux Stack Exchange!

            • Please be sure to answer the question. Provide details and share your research!

            But avoid

            • Asking for help, clarification, or responding to other answers.
            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.

            draft saved

            draft discarded

            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin(‘.new-post-login’, ‘https%3a%2f%2funix.stackexchange.com%2fquestions%2f497260%2fhow-many-packets-are-pending-inside-a-network-interface%23new-answer’, ‘question_page’);
            }
            );

            Post as a guest

            Required, but never shown

            Required, but never shown

            Required, but never shown

            Required, but never shown

            Required, but never shown

            Required, but never shown

            Required, but never shown

            Required, but never shown

            Required, but never shown

            Kernel Support | Processors List

            The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP

            1

            Where can I find the supported Processors for each Kernel Version?
            For example

            (KBL Processors) is only supported for Kernel Kernel 4.5 
            

            share|improve this question

            • en.wikipedia.org/wiki/… lists the supported architecures.

              – IronPig
              Jan 28 at 14:34

            1

            Where can I find the supported Processors for each Kernel Version?
            For example

            (KBL Processors) is only supported for Kernel Kernel 4.5 
            

            share|improve this question

            • en.wikipedia.org/wiki/… lists the supported architecures.

              – IronPig
              Jan 28 at 14:34

            1

            1

            1

            1

            Where can I find the supported Processors for each Kernel Version?
            For example

            (KBL Processors) is only supported for Kernel Kernel 4.5 
            

            share|improve this question

            Where can I find the supported Processors for each Kernel Version?
            For example

            (KBL Processors) is only supported for Kernel Kernel 4.5 
            

            linux linux-kernel cpu database

            share|improve this question

            share|improve this question

            share|improve this question

            share|improve this question

            asked Jan 28 at 11:31

            DanDDanD

            61

            61

            • en.wikipedia.org/wiki/… lists the supported architecures.

              – IronPig
              Jan 28 at 14:34

            • en.wikipedia.org/wiki/… lists the supported architecures.

              – IronPig
              Jan 28 at 14:34

            en.wikipedia.org/wiki/… lists the supported architecures.

            – IronPig
            Jan 28 at 14:34

            en.wikipedia.org/wiki/… lists the supported architecures.

            – IronPig
            Jan 28 at 14:34

            1 Answer
            1

            active

            oldest

            votes

            0

            http://cdn.kernel.org/pub/linux/kernel/ link has the change log for each kernel.
            Once you download the kernel you could also look into arch/ folder to see the list of processors supported.

            share|improve this answer

              Your Answer

              StackExchange.ready(function() {
              var channelOptions = {
              tags: “”.split(” “),
              id: “106”
              };
              initTagRenderer(“”.split(” “), “”.split(” “), channelOptions);

              StackExchange.using(“externalEditor”, function() {
              // Have to fire editor after snippets, if snippets enabled
              if (StackExchange.settings.snippets.snippetsEnabled) {
              StackExchange.using(“snippets”, function() {
              createEditor();
              });
              }
              else {
              createEditor();
              }
              });

              function createEditor() {
              StackExchange.prepareEditor({
              heartbeatType: ‘answer’,
              autoActivateHeartbeat: false,
              convertImagesToLinks: false,
              noModals: true,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: null,
              bindNavPrevention: true,
              postfix: “”,
              imageUploader: {
              brandingHtml: “Powered by u003ca class=”icon-imgur-white” href=”https://imgur.com/”u003eu003c/au003e”,
              contentPolicyHtml: “User contributions licensed under u003ca href=”https://creativecommons.org/licenses/by-sa/3.0/”u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href=”https://stackoverflow.com/legal/content-policy”u003e(content policy)u003c/au003e”,
              allowUrls: true
              },
              onDemand: true,
              discardSelector: “.discard-answer”
              ,immediatelyShowMarkdownHelp:true
              });

              }
              });

              draft saved
              draft discarded

              StackExchange.ready(
              function () {
              StackExchange.openid.initPostLogin(‘.new-post-login’, ‘https%3a%2f%2funix.stackexchange.com%2fquestions%2f497177%2fkernel-support-processors-list%23new-answer’, ‘question_page’);
              }
              );

              Post as a guest

              Required, but never shown

              1 Answer
              1

              active

              oldest

              votes

              1 Answer
              1

              active

              oldest

              votes

              active

              oldest

              votes

              active

              oldest

              votes

              0

              http://cdn.kernel.org/pub/linux/kernel/ link has the change log for each kernel.
              Once you download the kernel you could also look into arch/ folder to see the list of processors supported.

              share|improve this answer

                0

                http://cdn.kernel.org/pub/linux/kernel/ link has the change log for each kernel.
                Once you download the kernel you could also look into arch/ folder to see the list of processors supported.

                share|improve this answer

                  0

                  0

                  0

                  http://cdn.kernel.org/pub/linux/kernel/ link has the change log for each kernel.
                  Once you download the kernel you could also look into arch/ folder to see the list of processors supported.

                  share|improve this answer

                  http://cdn.kernel.org/pub/linux/kernel/ link has the change log for each kernel.
                  Once you download the kernel you could also look into arch/ folder to see the list of processors supported.

                  share|improve this answer

                  share|improve this answer

                  share|improve this answer

                  answered Jan 29 at 7:56

                  OpenSourceEnthusiastOpenSourceEnthusiast

                  366

                  366

                      draft saved
                      draft discarded

                      Thanks for contributing an answer to Unix & Linux Stack Exchange!

                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid

                      • Asking for help, clarification, or responding to other answers.
                      • Making statements based on opinion; back them up with references or personal experience.

                      To learn more, see our tips on writing great answers.

                      draft saved

                      draft discarded

                      StackExchange.ready(
                      function () {
                      StackExchange.openid.initPostLogin(‘.new-post-login’, ‘https%3a%2f%2funix.stackexchange.com%2fquestions%2f497177%2fkernel-support-processors-list%23new-answer’, ‘question_page’);
                      }
                      );

                      Post as a guest

                      Required, but never shown

                      Required, but never shown

                      Required, but never shown

                      Required, but never shown

                      Required, but never shown

                      Required, but never shown

                      Required, but never shown

                      Required, but never shown

                      Required, but never shown

                      How are Linux kernel bugs being tracked?

                      The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP

                      4

                      What an hour of Googling bring out that mainstream Linux kernel bugs are being logged in two distinct systems:

                      Mailing list

                      This is the Linux kernel development discussion and bug reporting
                      mailing list.

                      The mailing list is archived by a number of services, e.g.

                      • Gmane
                      • lkml
                      • MARC
                      • Mail archive
                      • Indiana

                      Bugzilla

                      This is the Kernel Tracker system (based on Bugzilla) for posting bugs
                      against the mainline Linux kernels (not distribution kernels).

                      Distributions, e.g. Ubuntu have their own bug tracker which may be set to track upstream bugs.

                      I wonder that,

                      • Are the bugs reported on the either of the services synced back to the other?
                      • Assuming that the mailing list and the bugzilla are not mirrors of each other (i.e. those are independent and bugs are not synced), how do Linux developers coordinate between the bugs reported across services?
                      • Isn’t it inconvenient to refer to the bugs reported to mailing list later on due to not having any bug ID? (I understand that one can refer by a mailing archive URL, however doesn’t look professional IMO)
                      • Should a new bug be reported to any one of the services or both?
                      share|improve this question

                        4

                        What an hour of Googling bring out that mainstream Linux kernel bugs are being logged in two distinct systems:

                        Mailing list

                        This is the Linux kernel development discussion and bug reporting
                        mailing list.

                        The mailing list is archived by a number of services, e.g.

                        • Gmane
                        • lkml
                        • MARC
                        • Mail archive
                        • Indiana

                        Bugzilla

                        This is the Kernel Tracker system (based on Bugzilla) for posting bugs
                        against the mainline Linux kernels (not distribution kernels).

                        Distributions, e.g. Ubuntu have their own bug tracker which may be set to track upstream bugs.

                        I wonder that,

                        • Are the bugs reported on the either of the services synced back to the other?
                        • Assuming that the mailing list and the bugzilla are not mirrors of each other (i.e. those are independent and bugs are not synced), how do Linux developers coordinate between the bugs reported across services?
                        • Isn’t it inconvenient to refer to the bugs reported to mailing list later on due to not having any bug ID? (I understand that one can refer by a mailing archive URL, however doesn’t look professional IMO)
                        • Should a new bug be reported to any one of the services or both?
                        share|improve this question

                          4

                          4

                          4

                          2

                          What an hour of Googling bring out that mainstream Linux kernel bugs are being logged in two distinct systems:

                          Mailing list

                          This is the Linux kernel development discussion and bug reporting
                          mailing list.

                          The mailing list is archived by a number of services, e.g.

                          • Gmane
                          • lkml
                          • MARC
                          • Mail archive
                          • Indiana

                          Bugzilla

                          This is the Kernel Tracker system (based on Bugzilla) for posting bugs
                          against the mainline Linux kernels (not distribution kernels).

                          Distributions, e.g. Ubuntu have their own bug tracker which may be set to track upstream bugs.

                          I wonder that,

                          • Are the bugs reported on the either of the services synced back to the other?
                          • Assuming that the mailing list and the bugzilla are not mirrors of each other (i.e. those are independent and bugs are not synced), how do Linux developers coordinate between the bugs reported across services?
                          • Isn’t it inconvenient to refer to the bugs reported to mailing list later on due to not having any bug ID? (I understand that one can refer by a mailing archive URL, however doesn’t look professional IMO)
                          • Should a new bug be reported to any one of the services or both?
                          share|improve this question

                          What an hour of Googling bring out that mainstream Linux kernel bugs are being logged in two distinct systems:

                          Mailing list

                          This is the Linux kernel development discussion and bug reporting
                          mailing list.

                          The mailing list is archived by a number of services, e.g.

                          • Gmane
                          • lkml
                          • MARC
                          • Mail archive
                          • Indiana

                          Bugzilla

                          This is the Kernel Tracker system (based on Bugzilla) for posting bugs
                          against the mainline Linux kernels (not distribution kernels).

                          Distributions, e.g. Ubuntu have their own bug tracker which may be set to track upstream bugs.

                          I wonder that,

                          • Are the bugs reported on the either of the services synced back to the other?
                          • Assuming that the mailing list and the bugzilla are not mirrors of each other (i.e. those are independent and bugs are not synced), how do Linux developers coordinate between the bugs reported across services?
                          • Isn’t it inconvenient to refer to the bugs reported to mailing list later on due to not having any bug ID? (I understand that one can refer by a mailing archive URL, however doesn’t look professional IMO)
                          • Should a new bug be reported to any one of the services or both?

                          linux-kernel bugs bugzilla

                          share|improve this question

                          share|improve this question

                          share|improve this question

                          share|improve this question

                          edited Jun 30 ’16 at 6:12

                          Holmes.Sherlock

                          asked Jun 30 ’16 at 5:48

                          Holmes.SherlockHolmes.Sherlock

                          224110

                          224110

                              1 Answer
                              1

                              active

                              oldest

                              votes

                              -2

                              This is really a very very partial answer, but at least in the netdev mailing list (for the networking subsystem), there are sometimes messages about bugs reported in bugzilla; these messages are sent to the netdev mailing list, with cc to potential owners of the code, for example:
                              http://www.spinics.net/lists/netdev/msg351687.html

                              share|improve this answer

                                Your Answer

                                StackExchange.ready(function() {
                                var channelOptions = {
                                tags: “”.split(” “),
                                id: “106”
                                };
                                initTagRenderer(“”.split(” “), “”.split(” “), channelOptions);

                                StackExchange.using(“externalEditor”, function() {
                                // Have to fire editor after snippets, if snippets enabled
                                if (StackExchange.settings.snippets.snippetsEnabled) {
                                StackExchange.using(“snippets”, function() {
                                createEditor();
                                });
                                }
                                else {
                                createEditor();
                                }
                                });

                                function createEditor() {
                                StackExchange.prepareEditor({
                                heartbeatType: ‘answer’,
                                autoActivateHeartbeat: false,
                                convertImagesToLinks: false,
                                noModals: true,
                                showLowRepImageUploadWarning: true,
                                reputationToPostImages: null,
                                bindNavPrevention: true,
                                postfix: “”,
                                imageUploader: {
                                brandingHtml: “Powered by u003ca class=”icon-imgur-white” href=”https://imgur.com/”u003eu003c/au003e”,
                                contentPolicyHtml: “User contributions licensed under u003ca href=”https://creativecommons.org/licenses/by-sa/3.0/”u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href=”https://stackoverflow.com/legal/content-policy”u003e(content policy)u003c/au003e”,
                                allowUrls: true
                                },
                                onDemand: true,
                                discardSelector: “.discard-answer”
                                ,immediatelyShowMarkdownHelp:true
                                });

                                }
                                });

                                draft saved
                                draft discarded

                                StackExchange.ready(
                                function () {
                                StackExchange.openid.initPostLogin(‘.new-post-login’, ‘https%3a%2f%2funix.stackexchange.com%2fquestions%2f293025%2fhow-are-linux-kernel-bugs-being-tracked%23new-answer’, ‘question_page’);
                                }
                                );

                                Post as a guest

                                Required, but never shown

                                1 Answer
                                1

                                active

                                oldest

                                votes

                                1 Answer
                                1

                                active

                                oldest

                                votes

                                active

                                oldest

                                votes

                                active

                                oldest

                                votes

                                -2

                                This is really a very very partial answer, but at least in the netdev mailing list (for the networking subsystem), there are sometimes messages about bugs reported in bugzilla; these messages are sent to the netdev mailing list, with cc to potential owners of the code, for example:
                                http://www.spinics.net/lists/netdev/msg351687.html

                                share|improve this answer

                                  -2

                                  This is really a very very partial answer, but at least in the netdev mailing list (for the networking subsystem), there are sometimes messages about bugs reported in bugzilla; these messages are sent to the netdev mailing list, with cc to potential owners of the code, for example:
                                  http://www.spinics.net/lists/netdev/msg351687.html

                                  share|improve this answer

                                    -2

                                    -2

                                    -2

                                    This is really a very very partial answer, but at least in the netdev mailing list (for the networking subsystem), there are sometimes messages about bugs reported in bugzilla; these messages are sent to the netdev mailing list, with cc to potential owners of the code, for example:
                                    http://www.spinics.net/lists/netdev/msg351687.html

                                    share|improve this answer

                                    This is really a very very partial answer, but at least in the netdev mailing list (for the networking subsystem), there are sometimes messages about bugs reported in bugzilla; these messages are sent to the netdev mailing list, with cc to potential owners of the code, for example:
                                    http://www.spinics.net/lists/netdev/msg351687.html

                                    share|improve this answer

                                    share|improve this answer

                                    share|improve this answer

                                    edited Sep 2 ’16 at 15:35

                                    Jeff Schaller

                                    41.5k1056132

                                    41.5k1056132

                                    answered Sep 2 ’16 at 14:42

                                    Rami RosenRami Rosen

                                    1602

                                    1602

                                        draft saved
                                        draft discarded

                                        Thanks for contributing an answer to Unix & Linux Stack Exchange!

                                        • Please be sure to answer the question. Provide details and share your research!

                                        But avoid

                                        • Asking for help, clarification, or responding to other answers.
                                        • Making statements based on opinion; back them up with references or personal experience.

                                        To learn more, see our tips on writing great answers.

                                        draft saved

                                        draft discarded

                                        StackExchange.ready(
                                        function () {
                                        StackExchange.openid.initPostLogin(‘.new-post-login’, ‘https%3a%2f%2funix.stackexchange.com%2fquestions%2f293025%2fhow-are-linux-kernel-bugs-being-tracked%23new-answer’, ‘question_page’);
                                        }
                                        );

                                        Post as a guest

                                        Required, but never shown

                                        Required, but never shown

                                        Required, but never shown

                                        Required, but never shown

                                        Required, but never shown

                                        Required, but never shown

                                        Required, but never shown

                                        Required, but never shown

                                        Required, but never shown

                                        “OOPS” kernel message when unloading a module

                                        The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP

                                        2

                                        Sometimes I receive the flollowing logs from kernel when trying to unload a module using delete_module system call:

                                        static inline int delete_module(const char *name, int flags)
                                        {
                                            return syscall(__NR_delete_module, name, flags);
                                        }
                                        

                                        From the backtrace, the kernel is trying to find a kernfs_node by name and remove it. But the name is NULL in this case. Please could you tell me what could be the root cause of such random problem ?

                                        [[ 135.142426] st_asm330lhh_spi spi2.0: Removing device 0
                                        [[ 135.143021] st_asm330lhh_spi spi2.0: Removing device 1
                                        [[ 135.145053] Unable to handle kernel paging request at virtual address 11ffe6ff
                                        [[ 135.145072] pgd = d75a4000
                                        [[ 135.145082] [11ffe6ff] *pgd=00000000
                                        [[ 135.145097] Internal error: Oops: 5 [#1] PREEMPT ARM
                                        [[ 135.145114] Modules linked in: st_asm330lhh(-) gpio50 [last unloaded: st_asm330lhh]
                                        [[ 135.145139] CPU: 0 PID: 2361 Comm: lifecyclemgr Not tainted 3.18.48 #4
                                        [[ 135.145152] task: cc93b900 ti: cc96c000 task.ti: cc96c000
                                        [[ 135.145170] PC is at strlen+0x4/0x24
                                        [[ 135.145187] LR is at kernfs_name_hash+0x10/0x6c
                                        [[ 135.145201] pc : [<c01f4698>] lr : [<c012e5f0>] psr: 60010013
                                        [[ 135.145201] sp : cc96def8 ip : 00000000 fp : b1bfe48c
                                        [[ 135.145215] r10: 00000000 r9 : cc96c000 r8 : 00000800
                                        [[ 135.145227] r7 : bf0060d0 r6 : 11ffe6ff r5 : 00000000 r4 : 11ffe6ff
                                        [[ 135.145239] r3 : 11ffe6ff r2 : 00000000 r1 : 00000000 r0 : 11ffe6ff
                                        [[ 135.145252] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none
                                        [[ 135.145265] Control: 10c53c7d Table: 975a4059 DAC: 00000051
                                        [[ 135.145277] Process lifecyclemgr (pid: 2361, stack limit = 0xcc96c208)
                                        [[ 135.145289] Stack: (0xcc96def8 to 0xcc96e000)
                                        [[ 135.145303] dee0: cc952b50 00000000
                                        [[ 135.145321] df00: 11ffe6ff c012efc8 cc952870 11ffe6ff 00000000 11ffe6ff cc952870 00000000
                                        [[ 135.145339] df20: bf0060d0 c012fd84 bf006088 00000000 cc887c00 c006d678 00000000 bf006088
                                        [[ 135.145357] df40: c0d21008 60010013 00000800 c006d7fc 615f7473 33336d73 68686c30 00000000
                                        [[ 135.145375] df60: 00000000 00000000 cc93b900 00000000 cc93b900 00000000 c0dcd3b8 cc96dfb0
                                        [[ 135.145393] df80: b1bfe494 c0033d14 0096c000 29427fd7 4fe52e18 b1bfe4ac 4fe48a54 00000081
                                        [[ 135.145411] dfa0: c000e624 c000e460 4fe52e18 b1bfe4ac 4fe52e18 00000800 00000000 00000800
                                        [[ 135.145430] dfc0: 4fe52e18 b1bfe4ac 4fe48a54 00000081 002179bc 001c9790 0bebc200 b1bfe48c
                                        [[ 135.145448] dfe0: b1bfe480 b1bfe470 4fe48914 4fafce30 60010010 4fe52e18 e594102c e2840024
                                        [[ 135.145476] [<c01f4698>] (strlen) from [<c012e5f0>] (kernfs_name_hash+0x10/0x6c)
                                        [[ 135.145500] [<c012e5f0>] (kernfs_name_hash) from [<c012efc8>] (kernfs_find_ns+0x70/0xd8)
                                        [[ 135.145524] [<c012efc8>] (kernfs_find_ns) from [<c012fd84>] (kernfs_remove_by_name_ns+0x48/0x78)
                                        [[ 135.145548] [<c012fd84>] (kernfs_remove_by_name_ns) from [<c006d678>] (free_module+0x184/0x1c4)
                                        [[ 135.145569] [<c006d678>] (free_module) from [<c006d7fc>] (SyS_delete_module+0x144/0x1dc)
                                        [[ 135.145591] [<c006d7fc>] (SyS_delete_module) from [<c000e460>] (ret_fast_syscall+0x0/0x44)
                                        [[ 135.145609] Code: 1afffff9 e12fff1e c077e998 e1a03000 (e5d32000)
                                        [[ 135.145622] ---[ end trace 7e807feb82cc2ca5 ]--- 
                                        

                                        share|improve this question

                                          2

                                          Sometimes I receive the flollowing logs from kernel when trying to unload a module using delete_module system call:

                                          static inline int delete_module(const char *name, int flags)
                                          {
                                              return syscall(__NR_delete_module, name, flags);
                                          }
                                          

                                          From the backtrace, the kernel is trying to find a kernfs_node by name and remove it. But the name is NULL in this case. Please could you tell me what could be the root cause of such random problem ?

                                          [[ 135.142426] st_asm330lhh_spi spi2.0: Removing device 0
                                          [[ 135.143021] st_asm330lhh_spi spi2.0: Removing device 1
                                          [[ 135.145053] Unable to handle kernel paging request at virtual address 11ffe6ff
                                          [[ 135.145072] pgd = d75a4000
                                          [[ 135.145082] [11ffe6ff] *pgd=00000000
                                          [[ 135.145097] Internal error: Oops: 5 [#1] PREEMPT ARM
                                          [[ 135.145114] Modules linked in: st_asm330lhh(-) gpio50 [last unloaded: st_asm330lhh]
                                          [[ 135.145139] CPU: 0 PID: 2361 Comm: lifecyclemgr Not tainted 3.18.48 #4
                                          [[ 135.145152] task: cc93b900 ti: cc96c000 task.ti: cc96c000
                                          [[ 135.145170] PC is at strlen+0x4/0x24
                                          [[ 135.145187] LR is at kernfs_name_hash+0x10/0x6c
                                          [[ 135.145201] pc : [<c01f4698>] lr : [<c012e5f0>] psr: 60010013
                                          [[ 135.145201] sp : cc96def8 ip : 00000000 fp : b1bfe48c
                                          [[ 135.145215] r10: 00000000 r9 : cc96c000 r8 : 00000800
                                          [[ 135.145227] r7 : bf0060d0 r6 : 11ffe6ff r5 : 00000000 r4 : 11ffe6ff
                                          [[ 135.145239] r3 : 11ffe6ff r2 : 00000000 r1 : 00000000 r0 : 11ffe6ff
                                          [[ 135.145252] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none
                                          [[ 135.145265] Control: 10c53c7d Table: 975a4059 DAC: 00000051
                                          [[ 135.145277] Process lifecyclemgr (pid: 2361, stack limit = 0xcc96c208)
                                          [[ 135.145289] Stack: (0xcc96def8 to 0xcc96e000)
                                          [[ 135.145303] dee0: cc952b50 00000000
                                          [[ 135.145321] df00: 11ffe6ff c012efc8 cc952870 11ffe6ff 00000000 11ffe6ff cc952870 00000000
                                          [[ 135.145339] df20: bf0060d0 c012fd84 bf006088 00000000 cc887c00 c006d678 00000000 bf006088
                                          [[ 135.145357] df40: c0d21008 60010013 00000800 c006d7fc 615f7473 33336d73 68686c30 00000000
                                          [[ 135.145375] df60: 00000000 00000000 cc93b900 00000000 cc93b900 00000000 c0dcd3b8 cc96dfb0
                                          [[ 135.145393] df80: b1bfe494 c0033d14 0096c000 29427fd7 4fe52e18 b1bfe4ac 4fe48a54 00000081
                                          [[ 135.145411] dfa0: c000e624 c000e460 4fe52e18 b1bfe4ac 4fe52e18 00000800 00000000 00000800
                                          [[ 135.145430] dfc0: 4fe52e18 b1bfe4ac 4fe48a54 00000081 002179bc 001c9790 0bebc200 b1bfe48c
                                          [[ 135.145448] dfe0: b1bfe480 b1bfe470 4fe48914 4fafce30 60010010 4fe52e18 e594102c e2840024
                                          [[ 135.145476] [<c01f4698>] (strlen) from [<c012e5f0>] (kernfs_name_hash+0x10/0x6c)
                                          [[ 135.145500] [<c012e5f0>] (kernfs_name_hash) from [<c012efc8>] (kernfs_find_ns+0x70/0xd8)
                                          [[ 135.145524] [<c012efc8>] (kernfs_find_ns) from [<c012fd84>] (kernfs_remove_by_name_ns+0x48/0x78)
                                          [[ 135.145548] [<c012fd84>] (kernfs_remove_by_name_ns) from [<c006d678>] (free_module+0x184/0x1c4)
                                          [[ 135.145569] [<c006d678>] (free_module) from [<c006d7fc>] (SyS_delete_module+0x144/0x1dc)
                                          [[ 135.145591] [<c006d7fc>] (SyS_delete_module) from [<c000e460>] (ret_fast_syscall+0x0/0x44)
                                          [[ 135.145609] Code: 1afffff9 e12fff1e c077e998 e1a03000 (e5d32000)
                                          [[ 135.145622] ---[ end trace 7e807feb82cc2ca5 ]--- 
                                          

                                          share|improve this question

                                            2

                                            2

                                            2

                                            Sometimes I receive the flollowing logs from kernel when trying to unload a module using delete_module system call:

                                            static inline int delete_module(const char *name, int flags)
                                            {
                                                return syscall(__NR_delete_module, name, flags);
                                            }
                                            

                                            From the backtrace, the kernel is trying to find a kernfs_node by name and remove it. But the name is NULL in this case. Please could you tell me what could be the root cause of such random problem ?

                                            [[ 135.142426] st_asm330lhh_spi spi2.0: Removing device 0
                                            [[ 135.143021] st_asm330lhh_spi spi2.0: Removing device 1
                                            [[ 135.145053] Unable to handle kernel paging request at virtual address 11ffe6ff
                                            [[ 135.145072] pgd = d75a4000
                                            [[ 135.145082] [11ffe6ff] *pgd=00000000
                                            [[ 135.145097] Internal error: Oops: 5 [#1] PREEMPT ARM
                                            [[ 135.145114] Modules linked in: st_asm330lhh(-) gpio50 [last unloaded: st_asm330lhh]
                                            [[ 135.145139] CPU: 0 PID: 2361 Comm: lifecyclemgr Not tainted 3.18.48 #4
                                            [[ 135.145152] task: cc93b900 ti: cc96c000 task.ti: cc96c000
                                            [[ 135.145170] PC is at strlen+0x4/0x24
                                            [[ 135.145187] LR is at kernfs_name_hash+0x10/0x6c
                                            [[ 135.145201] pc : [<c01f4698>] lr : [<c012e5f0>] psr: 60010013
                                            [[ 135.145201] sp : cc96def8 ip : 00000000 fp : b1bfe48c
                                            [[ 135.145215] r10: 00000000 r9 : cc96c000 r8 : 00000800
                                            [[ 135.145227] r7 : bf0060d0 r6 : 11ffe6ff r5 : 00000000 r4 : 11ffe6ff
                                            [[ 135.145239] r3 : 11ffe6ff r2 : 00000000 r1 : 00000000 r0 : 11ffe6ff
                                            [[ 135.145252] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none
                                            [[ 135.145265] Control: 10c53c7d Table: 975a4059 DAC: 00000051
                                            [[ 135.145277] Process lifecyclemgr (pid: 2361, stack limit = 0xcc96c208)
                                            [[ 135.145289] Stack: (0xcc96def8 to 0xcc96e000)
                                            [[ 135.145303] dee0: cc952b50 00000000
                                            [[ 135.145321] df00: 11ffe6ff c012efc8 cc952870 11ffe6ff 00000000 11ffe6ff cc952870 00000000
                                            [[ 135.145339] df20: bf0060d0 c012fd84 bf006088 00000000 cc887c00 c006d678 00000000 bf006088
                                            [[ 135.145357] df40: c0d21008 60010013 00000800 c006d7fc 615f7473 33336d73 68686c30 00000000
                                            [[ 135.145375] df60: 00000000 00000000 cc93b900 00000000 cc93b900 00000000 c0dcd3b8 cc96dfb0
                                            [[ 135.145393] df80: b1bfe494 c0033d14 0096c000 29427fd7 4fe52e18 b1bfe4ac 4fe48a54 00000081
                                            [[ 135.145411] dfa0: c000e624 c000e460 4fe52e18 b1bfe4ac 4fe52e18 00000800 00000000 00000800
                                            [[ 135.145430] dfc0: 4fe52e18 b1bfe4ac 4fe48a54 00000081 002179bc 001c9790 0bebc200 b1bfe48c
                                            [[ 135.145448] dfe0: b1bfe480 b1bfe470 4fe48914 4fafce30 60010010 4fe52e18 e594102c e2840024
                                            [[ 135.145476] [<c01f4698>] (strlen) from [<c012e5f0>] (kernfs_name_hash+0x10/0x6c)
                                            [[ 135.145500] [<c012e5f0>] (kernfs_name_hash) from [<c012efc8>] (kernfs_find_ns+0x70/0xd8)
                                            [[ 135.145524] [<c012efc8>] (kernfs_find_ns) from [<c012fd84>] (kernfs_remove_by_name_ns+0x48/0x78)
                                            [[ 135.145548] [<c012fd84>] (kernfs_remove_by_name_ns) from [<c006d678>] (free_module+0x184/0x1c4)
                                            [[ 135.145569] [<c006d678>] (free_module) from [<c006d7fc>] (SyS_delete_module+0x144/0x1dc)
                                            [[ 135.145591] [<c006d7fc>] (SyS_delete_module) from [<c000e460>] (ret_fast_syscall+0x0/0x44)
                                            [[ 135.145609] Code: 1afffff9 e12fff1e c077e998 e1a03000 (e5d32000)
                                            [[ 135.145622] ---[ end trace 7e807feb82cc2ca5 ]--- 
                                            

                                            share|improve this question

                                            Sometimes I receive the flollowing logs from kernel when trying to unload a module using delete_module system call:

                                            static inline int delete_module(const char *name, int flags)
                                            {
                                                return syscall(__NR_delete_module, name, flags);
                                            }
                                            

                                            From the backtrace, the kernel is trying to find a kernfs_node by name and remove it. But the name is NULL in this case. Please could you tell me what could be the root cause of such random problem ?

                                            [[ 135.142426] st_asm330lhh_spi spi2.0: Removing device 0
                                            [[ 135.143021] st_asm330lhh_spi spi2.0: Removing device 1
                                            [[ 135.145053] Unable to handle kernel paging request at virtual address 11ffe6ff
                                            [[ 135.145072] pgd = d75a4000
                                            [[ 135.145082] [11ffe6ff] *pgd=00000000
                                            [[ 135.145097] Internal error: Oops: 5 [#1] PREEMPT ARM
                                            [[ 135.145114] Modules linked in: st_asm330lhh(-) gpio50 [last unloaded: st_asm330lhh]
                                            [[ 135.145139] CPU: 0 PID: 2361 Comm: lifecyclemgr Not tainted 3.18.48 #4
                                            [[ 135.145152] task: cc93b900 ti: cc96c000 task.ti: cc96c000
                                            [[ 135.145170] PC is at strlen+0x4/0x24
                                            [[ 135.145187] LR is at kernfs_name_hash+0x10/0x6c
                                            [[ 135.145201] pc : [<c01f4698>] lr : [<c012e5f0>] psr: 60010013
                                            [[ 135.145201] sp : cc96def8 ip : 00000000 fp : b1bfe48c
                                            [[ 135.145215] r10: 00000000 r9 : cc96c000 r8 : 00000800
                                            [[ 135.145227] r7 : bf0060d0 r6 : 11ffe6ff r5 : 00000000 r4 : 11ffe6ff
                                            [[ 135.145239] r3 : 11ffe6ff r2 : 00000000 r1 : 00000000 r0 : 11ffe6ff
                                            [[ 135.145252] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none
                                            [[ 135.145265] Control: 10c53c7d Table: 975a4059 DAC: 00000051
                                            [[ 135.145277] Process lifecyclemgr (pid: 2361, stack limit = 0xcc96c208)
                                            [[ 135.145289] Stack: (0xcc96def8 to 0xcc96e000)
                                            [[ 135.145303] dee0: cc952b50 00000000
                                            [[ 135.145321] df00: 11ffe6ff c012efc8 cc952870 11ffe6ff 00000000 11ffe6ff cc952870 00000000
                                            [[ 135.145339] df20: bf0060d0 c012fd84 bf006088 00000000 cc887c00 c006d678 00000000 bf006088
                                            [[ 135.145357] df40: c0d21008 60010013 00000800 c006d7fc 615f7473 33336d73 68686c30 00000000
                                            [[ 135.145375] df60: 00000000 00000000 cc93b900 00000000 cc93b900 00000000 c0dcd3b8 cc96dfb0
                                            [[ 135.145393] df80: b1bfe494 c0033d14 0096c000 29427fd7 4fe52e18 b1bfe4ac 4fe48a54 00000081
                                            [[ 135.145411] dfa0: c000e624 c000e460 4fe52e18 b1bfe4ac 4fe52e18 00000800 00000000 00000800
                                            [[ 135.145430] dfc0: 4fe52e18 b1bfe4ac 4fe48a54 00000081 002179bc 001c9790 0bebc200 b1bfe48c
                                            [[ 135.145448] dfe0: b1bfe480 b1bfe470 4fe48914 4fafce30 60010010 4fe52e18 e594102c e2840024
                                            [[ 135.145476] [<c01f4698>] (strlen) from [<c012e5f0>] (kernfs_name_hash+0x10/0x6c)
                                            [[ 135.145500] [<c012e5f0>] (kernfs_name_hash) from [<c012efc8>] (kernfs_find_ns+0x70/0xd8)
                                            [[ 135.145524] [<c012efc8>] (kernfs_find_ns) from [<c012fd84>] (kernfs_remove_by_name_ns+0x48/0x78)
                                            [[ 135.145548] [<c012fd84>] (kernfs_remove_by_name_ns) from [<c006d678>] (free_module+0x184/0x1c4)
                                            [[ 135.145569] [<c006d678>] (free_module) from [<c006d7fc>] (SyS_delete_module+0x144/0x1dc)
                                            [[ 135.145591] [<c006d7fc>] (SyS_delete_module) from [<c000e460>] (ret_fast_syscall+0x0/0x44)
                                            [[ 135.145609] Code: 1afffff9 e12fff1e c077e998 e1a03000 (e5d32000)
                                            [[ 135.145622] ---[ end trace 7e807feb82cc2ca5 ]--- 
                                            

                                            linux-kernel kernel-modules

                                            share|improve this question

                                            share|improve this question

                                            share|improve this question

                                            share|improve this question

                                            edited Jan 31 at 10:54

                                            GAD3R

                                            26.7k1756110

                                            26.7k1756110

                                            asked Jan 27 at 18:20

                                            TLILI NassimTLILI Nassim

                                            111

                                            111

                                                1 Answer
                                                1

                                                active

                                                oldest

                                                votes

                                                0

                                                Welcome to Unix & Linux SE!

                                                When a module is unloaded, it needs to free any system resources it has allocated for its operations.

                                                Perhaps the module you’re unloading has a bug in it, causing the module unloading process to call kernfs_remove_by_name_ns() with a NULL instead of a valid parameter when the module is being unloaded?

                                                A quick glance through the functions referred to in the backtrace indicates the problem is probably the second parameter of kernfs_remove_by_name_ns() being NULL.

                                                Looking at the source code of free_module(), the first things referring to the module’s resources by name would be based on the name member in the module’s struct module – if that’s already NULL for some reason when the module is being removed, that Oops would be expected.

                                                share|improve this answer

                                                • Thank you for your feedback. But I don’t think the issue is related to the module itself, because the same behavior was seen with other modules from different providers/types ..

                                                  – TLILI Nassim
                                                  Jan 28 at 9:57

                                                • There is an Unable to handle kernel paging request at virtual address 11ffe6ff before the oops, so the system state may have been corrupted at some earlier point. Or if you are making several delete_module() syscalls quickly one after another, you may have discovered a race condition in the module unloading sequence. You mention “modules from different providers/types” – what exactly are these modules? Any common factors?

                                                  – telcoM
                                                  Jan 28 at 10:43

                                                • Test done by adding a delay of 1 sec between the occurences of delete_module(). But the issue is seen. Example of modules used: st_asm330lhh_spi, gpio50.

                                                  – TLILI Nassim
                                                  Jan 29 at 9:32

                                                • Now, we are trying to add a check of busy state as implemented in “rmmod” source code: github.com/vadmium/module-init-tools/blob/master/rmmod.c

                                                  – TLILI Nassim
                                                  Jan 29 at 9:39

                                                Your Answer

                                                StackExchange.ready(function() {
                                                var channelOptions = {
                                                tags: “”.split(” “),
                                                id: “106”
                                                };
                                                initTagRenderer(“”.split(” “), “”.split(” “), channelOptions);

                                                StackExchange.using(“externalEditor”, function() {
                                                // Have to fire editor after snippets, if snippets enabled
                                                if (StackExchange.settings.snippets.snippetsEnabled) {
                                                StackExchange.using(“snippets”, function() {
                                                createEditor();
                                                });
                                                }
                                                else {
                                                createEditor();
                                                }
                                                });

                                                function createEditor() {
                                                StackExchange.prepareEditor({
                                                heartbeatType: ‘answer’,
                                                autoActivateHeartbeat: false,
                                                convertImagesToLinks: false,
                                                noModals: true,
                                                showLowRepImageUploadWarning: true,
                                                reputationToPostImages: null,
                                                bindNavPrevention: true,
                                                postfix: “”,
                                                imageUploader: {
                                                brandingHtml: “Powered by u003ca class=”icon-imgur-white” href=”https://imgur.com/”u003eu003c/au003e”,
                                                contentPolicyHtml: “User contributions licensed under u003ca href=”https://creativecommons.org/licenses/by-sa/3.0/”u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href=”https://stackoverflow.com/legal/content-policy”u003e(content policy)u003c/au003e”,
                                                allowUrls: true
                                                },
                                                onDemand: true,
                                                discardSelector: “.discard-answer”
                                                ,immediatelyShowMarkdownHelp:true
                                                });

                                                }
                                                });

                                                draft saved
                                                draft discarded

                                                StackExchange.ready(
                                                function () {
                                                StackExchange.openid.initPostLogin(‘.new-post-login’, ‘https%3a%2f%2funix.stackexchange.com%2fquestions%2f497060%2foops-kernel-message-when-unloading-a-module%23new-answer’, ‘question_page’);
                                                }
                                                );

                                                Post as a guest

                                                Required, but never shown

                                                1 Answer
                                                1

                                                active

                                                oldest

                                                votes

                                                1 Answer
                                                1

                                                active

                                                oldest

                                                votes

                                                active

                                                oldest

                                                votes

                                                active

                                                oldest

                                                votes

                                                0

                                                Welcome to Unix & Linux SE!

                                                When a module is unloaded, it needs to free any system resources it has allocated for its operations.

                                                Perhaps the module you’re unloading has a bug in it, causing the module unloading process to call kernfs_remove_by_name_ns() with a NULL instead of a valid parameter when the module is being unloaded?

                                                A quick glance through the functions referred to in the backtrace indicates the problem is probably the second parameter of kernfs_remove_by_name_ns() being NULL.

                                                Looking at the source code of free_module(), the first things referring to the module’s resources by name would be based on the name member in the module’s struct module – if that’s already NULL for some reason when the module is being removed, that Oops would be expected.

                                                share|improve this answer

                                                • Thank you for your feedback. But I don’t think the issue is related to the module itself, because the same behavior was seen with other modules from different providers/types ..

                                                  – TLILI Nassim
                                                  Jan 28 at 9:57

                                                • There is an Unable to handle kernel paging request at virtual address 11ffe6ff before the oops, so the system state may have been corrupted at some earlier point. Or if you are making several delete_module() syscalls quickly one after another, you may have discovered a race condition in the module unloading sequence. You mention “modules from different providers/types” – what exactly are these modules? Any common factors?

                                                  – telcoM
                                                  Jan 28 at 10:43

                                                • Test done by adding a delay of 1 sec between the occurences of delete_module(). But the issue is seen. Example of modules used: st_asm330lhh_spi, gpio50.

                                                  – TLILI Nassim
                                                  Jan 29 at 9:32

                                                • Now, we are trying to add a check of busy state as implemented in “rmmod” source code: github.com/vadmium/module-init-tools/blob/master/rmmod.c

                                                  – TLILI Nassim
                                                  Jan 29 at 9:39

                                                0

                                                Welcome to Unix & Linux SE!

                                                When a module is unloaded, it needs to free any system resources it has allocated for its operations.

                                                Perhaps the module you’re unloading has a bug in it, causing the module unloading process to call kernfs_remove_by_name_ns() with a NULL instead of a valid parameter when the module is being unloaded?

                                                A quick glance through the functions referred to in the backtrace indicates the problem is probably the second parameter of kernfs_remove_by_name_ns() being NULL.

                                                Looking at the source code of free_module(), the first things referring to the module’s resources by name would be based on the name member in the module’s struct module – if that’s already NULL for some reason when the module is being removed, that Oops would be expected.

                                                share|improve this answer

                                                • Thank you for your feedback. But I don’t think the issue is related to the module itself, because the same behavior was seen with other modules from different providers/types ..

                                                  – TLILI Nassim
                                                  Jan 28 at 9:57

                                                • There is an Unable to handle kernel paging request at virtual address 11ffe6ff before the oops, so the system state may have been corrupted at some earlier point. Or if you are making several delete_module() syscalls quickly one after another, you may have discovered a race condition in the module unloading sequence. You mention “modules from different providers/types” – what exactly are these modules? Any common factors?

                                                  – telcoM
                                                  Jan 28 at 10:43

                                                • Test done by adding a delay of 1 sec between the occurences of delete_module(). But the issue is seen. Example of modules used: st_asm330lhh_spi, gpio50.

                                                  – TLILI Nassim
                                                  Jan 29 at 9:32

                                                • Now, we are trying to add a check of busy state as implemented in “rmmod” source code: github.com/vadmium/module-init-tools/blob/master/rmmod.c

                                                  – TLILI Nassim
                                                  Jan 29 at 9:39

                                                0

                                                0

                                                0

                                                Welcome to Unix & Linux SE!

                                                When a module is unloaded, it needs to free any system resources it has allocated for its operations.

                                                Perhaps the module you’re unloading has a bug in it, causing the module unloading process to call kernfs_remove_by_name_ns() with a NULL instead of a valid parameter when the module is being unloaded?

                                                A quick glance through the functions referred to in the backtrace indicates the problem is probably the second parameter of kernfs_remove_by_name_ns() being NULL.

                                                Looking at the source code of free_module(), the first things referring to the module’s resources by name would be based on the name member in the module’s struct module – if that’s already NULL for some reason when the module is being removed, that Oops would be expected.

                                                share|improve this answer

                                                Welcome to Unix & Linux SE!

                                                When a module is unloaded, it needs to free any system resources it has allocated for its operations.

                                                Perhaps the module you’re unloading has a bug in it, causing the module unloading process to call kernfs_remove_by_name_ns() with a NULL instead of a valid parameter when the module is being unloaded?

                                                A quick glance through the functions referred to in the backtrace indicates the problem is probably the second parameter of kernfs_remove_by_name_ns() being NULL.

                                                Looking at the source code of free_module(), the first things referring to the module’s resources by name would be based on the name member in the module’s struct module – if that’s already NULL for some reason when the module is being removed, that Oops would be expected.

                                                share|improve this answer

                                                share|improve this answer

                                                share|improve this answer

                                                answered Jan 27 at 21:31

                                                telcoMtelcoM

                                                17.4k12347

                                                17.4k12347

                                                • Thank you for your feedback. But I don’t think the issue is related to the module itself, because the same behavior was seen with other modules from different providers/types ..

                                                  – TLILI Nassim
                                                  Jan 28 at 9:57

                                                • There is an Unable to handle kernel paging request at virtual address 11ffe6ff before the oops, so the system state may have been corrupted at some earlier point. Or if you are making several delete_module() syscalls quickly one after another, you may have discovered a race condition in the module unloading sequence. You mention “modules from different providers/types” – what exactly are these modules? Any common factors?

                                                  – telcoM
                                                  Jan 28 at 10:43

                                                • Test done by adding a delay of 1 sec between the occurences of delete_module(). But the issue is seen. Example of modules used: st_asm330lhh_spi, gpio50.

                                                  – TLILI Nassim
                                                  Jan 29 at 9:32

                                                • Now, we are trying to add a check of busy state as implemented in “rmmod” source code: github.com/vadmium/module-init-tools/blob/master/rmmod.c

                                                  – TLILI Nassim
                                                  Jan 29 at 9:39

                                                • Thank you for your feedback. But I don’t think the issue is related to the module itself, because the same behavior was seen with other modules from different providers/types ..

                                                  – TLILI Nassim
                                                  Jan 28 at 9:57

                                                • There is an Unable to handle kernel paging request at virtual address 11ffe6ff before the oops, so the system state may have been corrupted at some earlier point. Or if you are making several delete_module() syscalls quickly one after another, you may have discovered a race condition in the module unloading sequence. You mention “modules from different providers/types” – what exactly are these modules? Any common factors?

                                                  – telcoM
                                                  Jan 28 at 10:43

                                                • Test done by adding a delay of 1 sec between the occurences of delete_module(). But the issue is seen. Example of modules used: st_asm330lhh_spi, gpio50.

                                                  – TLILI Nassim
                                                  Jan 29 at 9:32

                                                • Now, we are trying to add a check of busy state as implemented in “rmmod” source code: github.com/vadmium/module-init-tools/blob/master/rmmod.c

                                                  – TLILI Nassim
                                                  Jan 29 at 9:39

                                                Thank you for your feedback. But I don’t think the issue is related to the module itself, because the same behavior was seen with other modules from different providers/types ..

                                                – TLILI Nassim
                                                Jan 28 at 9:57

                                                Thank you for your feedback. But I don’t think the issue is related to the module itself, because the same behavior was seen with other modules from different providers/types ..

                                                – TLILI Nassim
                                                Jan 28 at 9:57

                                                There is an Unable to handle kernel paging request at virtual address 11ffe6ff before the oops, so the system state may have been corrupted at some earlier point. Or if you are making several delete_module() syscalls quickly one after another, you may have discovered a race condition in the module unloading sequence. You mention “modules from different providers/types” – what exactly are these modules? Any common factors?

                                                – telcoM
                                                Jan 28 at 10:43

                                                There is an Unable to handle kernel paging request at virtual address 11ffe6ff before the oops, so the system state may have been corrupted at some earlier point. Or if you are making several delete_module() syscalls quickly one after another, you may have discovered a race condition in the module unloading sequence. You mention “modules from different providers/types” – what exactly are these modules? Any common factors?

                                                – telcoM
                                                Jan 28 at 10:43

                                                Test done by adding a delay of 1 sec between the occurences of delete_module(). But the issue is seen. Example of modules used: st_asm330lhh_spi, gpio50.

                                                – TLILI Nassim
                                                Jan 29 at 9:32

                                                Test done by adding a delay of 1 sec between the occurences of delete_module(). But the issue is seen. Example of modules used: st_asm330lhh_spi, gpio50.

                                                – TLILI Nassim
                                                Jan 29 at 9:32

                                                Now, we are trying to add a check of busy state as implemented in “rmmod” source code: github.com/vadmium/module-init-tools/blob/master/rmmod.c

                                                – TLILI Nassim
                                                Jan 29 at 9:39

                                                Now, we are trying to add a check of busy state as implemented in “rmmod” source code: github.com/vadmium/module-init-tools/blob/master/rmmod.c

                                                – TLILI Nassim
                                                Jan 29 at 9:39

                                                draft saved
                                                draft discarded

                                                Thanks for contributing an answer to Unix & Linux Stack Exchange!

                                                • Please be sure to answer the question. Provide details and share your research!

                                                But avoid

                                                • Asking for help, clarification, or responding to other answers.
                                                • Making statements based on opinion; back them up with references or personal experience.

                                                To learn more, see our tips on writing great answers.

                                                draft saved

                                                draft discarded

                                                StackExchange.ready(
                                                function () {
                                                StackExchange.openid.initPostLogin(‘.new-post-login’, ‘https%3a%2f%2funix.stackexchange.com%2fquestions%2f497060%2foops-kernel-message-when-unloading-a-module%23new-answer’, ‘question_page’);
                                                }
                                                );

                                                Post as a guest

                                                Required, but never shown

                                                Required, but never shown

                                                Required, but never shown

                                                Required, but never shown

                                                Required, but never shown

                                                Required, but never shown

                                                Required, but never shown

                                                Required, but never shown

                                                Required, but never shown

                                                What is an alternative for zcache?

                                                The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP

                                                6

                                                I want to use a high-speed swap device or zram as “page cache”, so that page data can be dropped automatically when the system is out of memory.

                                                Apparently, zcache has been discontinued. Is there an available alternative? If yes, which one?

                                                bcache doesn’t seem to drop data when there’s no memory available.

                                                share|improve this question

                                                • How do you define “page cache”? Do you mean memory management scheme, a.k.a. swap? If so, bcache has nothing to do with it.

                                                  – Adam Ryczkowski
                                                  Jun 27 ’17 at 14:23

                                                • @AdamRyczkowski In computing, a page cache, sometimes also called disk cache

                                                  – illiterate
                                                  Jun 28 ’17 at 7:47

                                                • You English is difficult to understand, and you seem to mix unrelated concepts, so the noise level in your question is rather high. That’s why I asked for clarification.

                                                  – Adam Ryczkowski
                                                  Jun 30 ’17 at 16:57

                                                • You ask about how to use swap device as “page cache”. You control which swap devices the kernel should use (and their priorities) with swapon and swapoff commands. It doesn’t matter what is the actual storage for the device, whether it is a zram, disk partition, or bcache.

                                                  – Adam Ryczkowski
                                                  Jun 30 ’17 at 16:59

                                                • I’m sorry for my express way,in fact I trying find a alternative for zcache @AdamRyczkowski thank you.

                                                  – illiterate
                                                  Jul 1 ’17 at 4:49

                                                6

                                                I want to use a high-speed swap device or zram as “page cache”, so that page data can be dropped automatically when the system is out of memory.

                                                Apparently, zcache has been discontinued. Is there an available alternative? If yes, which one?

                                                bcache doesn’t seem to drop data when there’s no memory available.

                                                share|improve this question

                                                • How do you define “page cache”? Do you mean memory management scheme, a.k.a. swap? If so, bcache has nothing to do with it.

                                                  – Adam Ryczkowski
                                                  Jun 27 ’17 at 14:23

                                                • @AdamRyczkowski In computing, a page cache, sometimes also called disk cache

                                                  – illiterate
                                                  Jun 28 ’17 at 7:47

                                                • You English is difficult to understand, and you seem to mix unrelated concepts, so the noise level in your question is rather high. That’s why I asked for clarification.

                                                  – Adam Ryczkowski
                                                  Jun 30 ’17 at 16:57

                                                • You ask about how to use swap device as “page cache”. You control which swap devices the kernel should use (and their priorities) with swapon and swapoff commands. It doesn’t matter what is the actual storage for the device, whether it is a zram, disk partition, or bcache.

                                                  – Adam Ryczkowski
                                                  Jun 30 ’17 at 16:59

                                                • I’m sorry for my express way,in fact I trying find a alternative for zcache @AdamRyczkowski thank you.

                                                  – illiterate
                                                  Jul 1 ’17 at 4:49

                                                6

                                                6

                                                6

                                                0

                                                I want to use a high-speed swap device or zram as “page cache”, so that page data can be dropped automatically when the system is out of memory.

                                                Apparently, zcache has been discontinued. Is there an available alternative? If yes, which one?

                                                bcache doesn’t seem to drop data when there’s no memory available.

                                                share|improve this question

                                                I want to use a high-speed swap device or zram as “page cache”, so that page data can be dropped automatically when the system is out of memory.

                                                Apparently, zcache has been discontinued. Is there an available alternative? If yes, which one?

                                                bcache doesn’t seem to drop data when there’s no memory available.

                                                linux-kernel swap cache zram

                                                share|improve this question

                                                share|improve this question

                                                share|improve this question

                                                share|improve this question

                                                edited Jul 23 ’17 at 13:19

                                                illiterate

                                                asked Jun 27 ’17 at 8:34

                                                illiterateilliterate

                                                8211

                                                8211

                                                • How do you define “page cache”? Do you mean memory management scheme, a.k.a. swap? If so, bcache has nothing to do with it.

                                                  – Adam Ryczkowski
                                                  Jun 27 ’17 at 14:23

                                                • @AdamRyczkowski In computing, a page cache, sometimes also called disk cache

                                                  – illiterate
                                                  Jun 28 ’17 at 7:47

                                                • You English is difficult to understand, and you seem to mix unrelated concepts, so the noise level in your question is rather high. That’s why I asked for clarification.

                                                  – Adam Ryczkowski
                                                  Jun 30 ’17 at 16:57

                                                • You ask about how to use swap device as “page cache”. You control which swap devices the kernel should use (and their priorities) with swapon and swapoff commands. It doesn’t matter what is the actual storage for the device, whether it is a zram, disk partition, or bcache.

                                                  – Adam Ryczkowski
                                                  Jun 30 ’17 at 16:59

                                                • I’m sorry for my express way,in fact I trying find a alternative for zcache @AdamRyczkowski thank you.

                                                  – illiterate
                                                  Jul 1 ’17 at 4:49

                                                • How do you define “page cache”? Do you mean memory management scheme, a.k.a. swap? If so, bcache has nothing to do with it.

                                                  – Adam Ryczkowski
                                                  Jun 27 ’17 at 14:23

                                                • @AdamRyczkowski In computing, a page cache, sometimes also called disk cache

                                                  – illiterate
                                                  Jun 28 ’17 at 7:47

                                                • You English is difficult to understand, and you seem to mix unrelated concepts, so the noise level in your question is rather high. That’s why I asked for clarification.

                                                  – Adam Ryczkowski
                                                  Jun 30 ’17 at 16:57

                                                • You ask about how to use swap device as “page cache”. You control which swap devices the kernel should use (and their priorities) with swapon and swapoff commands. It doesn’t matter what is the actual storage for the device, whether it is a zram, disk partition, or bcache.

                                                  – Adam Ryczkowski
                                                  Jun 30 ’17 at 16:59

                                                • I’m sorry for my express way,in fact I trying find a alternative for zcache @AdamRyczkowski thank you.

                                                  – illiterate
                                                  Jul 1 ’17 at 4:49

                                                How do you define “page cache”? Do you mean memory management scheme, a.k.a. swap? If so, bcache has nothing to do with it.

                                                – Adam Ryczkowski
                                                Jun 27 ’17 at 14:23

                                                How do you define “page cache”? Do you mean memory management scheme, a.k.a. swap? If so, bcache has nothing to do with it.

                                                – Adam Ryczkowski
                                                Jun 27 ’17 at 14:23

                                                @AdamRyczkowski In computing, a page cache, sometimes also called disk cache

                                                – illiterate
                                                Jun 28 ’17 at 7:47

                                                @AdamRyczkowski In computing, a page cache, sometimes also called disk cache

                                                – illiterate
                                                Jun 28 ’17 at 7:47

                                                You English is difficult to understand, and you seem to mix unrelated concepts, so the noise level in your question is rather high. That’s why I asked for clarification.

                                                – Adam Ryczkowski
                                                Jun 30 ’17 at 16:57

                                                You English is difficult to understand, and you seem to mix unrelated concepts, so the noise level in your question is rather high. That’s why I asked for clarification.

                                                – Adam Ryczkowski
                                                Jun 30 ’17 at 16:57

                                                You ask about how to use swap device as “page cache”. You control which swap devices the kernel should use (and their priorities) with swapon and swapoff commands. It doesn’t matter what is the actual storage for the device, whether it is a zram, disk partition, or bcache.

                                                – Adam Ryczkowski
                                                Jun 30 ’17 at 16:59

                                                You ask about how to use swap device as “page cache”. You control which swap devices the kernel should use (and their priorities) with swapon and swapoff commands. It doesn’t matter what is the actual storage for the device, whether it is a zram, disk partition, or bcache.

                                                – Adam Ryczkowski
                                                Jun 30 ’17 at 16:59

                                                I’m sorry for my express way,in fact I trying find a alternative for zcache @AdamRyczkowski thank you.

                                                – illiterate
                                                Jul 1 ’17 at 4:49

                                                I’m sorry for my express way,in fact I trying find a alternative for zcache @AdamRyczkowski thank you.

                                                – illiterate
                                                Jul 1 ’17 at 4:49

                                                1 Answer
                                                1

                                                active

                                                oldest

                                                votes

                                                6

                                                Indeed zcache appears to have been discontinued, as it was removed from kernel 3.11 for being effectively obsolete. The commit message of zcache removal reads

                                                staging: zcache: delete it

                                                zcache is obsolete and not used anymore, Bob Liu has rewritten it and
                                                is submitting it for inclusion through the main -mm tree, as it should
                                                have been done in the first place…

                                                It appears that Bob Liu’s submission never got into mainline.

                                                Now, the way I understand it, the page cache is automatically “dropped” (cleared) in an out-of-memory scenario. zcache actually implemented compression so it could maintain more filesystem pages (also known as “vfs cache” or “inode/dentry cache”) before being dropped.

                                                The Linux kernel has zswap today that implements compressed disk-based swapping, but doesn’t compress filesystem pages.

                                                I am not aware of a current day alternative for zcache.

                                                Perhaps as a workaround, if you are concerned with performance degradation due to filesystem pages being freed, consider tuning vm.vfs_cache_pressure as instructed here.

                                                For normal workloads it’s safe to just settle with zswap.

                                                Additional reading:

                                                1. zram vs zswap vs zcache Ultimate guide: when to use which one
                                                2. Zswap, Zram, Zcache desktop usage scenarios
                                                3. zswap (Arch Linux Wiki)
                                                4. Cleancache and Frontswap (LWN)
                                                5. The Case for Compressed Caching in Virtual Memory Systems
                                                share|improve this answer

                                                  Your Answer

                                                  StackExchange.ready(function() {
                                                  var channelOptions = {
                                                  tags: “”.split(” “),
                                                  id: “106”
                                                  };
                                                  initTagRenderer(“”.split(” “), “”.split(” “), channelOptions);

                                                  StackExchange.using(“externalEditor”, function() {
                                                  // Have to fire editor after snippets, if snippets enabled
                                                  if (StackExchange.settings.snippets.snippetsEnabled) {
                                                  StackExchange.using(“snippets”, function() {
                                                  createEditor();
                                                  });
                                                  }
                                                  else {
                                                  createEditor();
                                                  }
                                                  });

                                                  function createEditor() {
                                                  StackExchange.prepareEditor({
                                                  heartbeatType: ‘answer’,
                                                  autoActivateHeartbeat: false,
                                                  convertImagesToLinks: false,
                                                  noModals: true,
                                                  showLowRepImageUploadWarning: true,
                                                  reputationToPostImages: null,
                                                  bindNavPrevention: true,
                                                  postfix: “”,
                                                  imageUploader: {
                                                  brandingHtml: “Powered by u003ca class=”icon-imgur-white” href=”https://imgur.com/”u003eu003c/au003e”,
                                                  contentPolicyHtml: “User contributions licensed under u003ca href=”https://creativecommons.org/licenses/by-sa/3.0/”u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href=”https://stackoverflow.com/legal/content-policy”u003e(content policy)u003c/au003e”,
                                                  allowUrls: true
                                                  },
                                                  onDemand: true,
                                                  discardSelector: “.discard-answer”
                                                  ,immediatelyShowMarkdownHelp:true
                                                  });

                                                  }
                                                  });

                                                  draft saved
                                                  draft discarded

                                                  StackExchange.ready(
                                                  function () {
                                                  StackExchange.openid.initPostLogin(‘.new-post-login’, ‘https%3a%2f%2funix.stackexchange.com%2fquestions%2f373631%2fwhat-is-an-alternative-for-zcache%23new-answer’, ‘question_page’);
                                                  }
                                                  );

                                                  Post as a guest

                                                  Required, but never shown

                                                  1 Answer
                                                  1

                                                  active

                                                  oldest

                                                  votes

                                                  1 Answer
                                                  1

                                                  active

                                                  oldest

                                                  votes

                                                  active

                                                  oldest

                                                  votes

                                                  active

                                                  oldest

                                                  votes

                                                  6

                                                  Indeed zcache appears to have been discontinued, as it was removed from kernel 3.11 for being effectively obsolete. The commit message of zcache removal reads

                                                  staging: zcache: delete it

                                                  zcache is obsolete and not used anymore, Bob Liu has rewritten it and
                                                  is submitting it for inclusion through the main -mm tree, as it should
                                                  have been done in the first place…

                                                  It appears that Bob Liu’s submission never got into mainline.

                                                  Now, the way I understand it, the page cache is automatically “dropped” (cleared) in an out-of-memory scenario. zcache actually implemented compression so it could maintain more filesystem pages (also known as “vfs cache” or “inode/dentry cache”) before being dropped.

                                                  The Linux kernel has zswap today that implements compressed disk-based swapping, but doesn’t compress filesystem pages.

                                                  I am not aware of a current day alternative for zcache.

                                                  Perhaps as a workaround, if you are concerned with performance degradation due to filesystem pages being freed, consider tuning vm.vfs_cache_pressure as instructed here.

                                                  For normal workloads it’s safe to just settle with zswap.

                                                  Additional reading:

                                                  1. zram vs zswap vs zcache Ultimate guide: when to use which one
                                                  2. Zswap, Zram, Zcache desktop usage scenarios
                                                  3. zswap (Arch Linux Wiki)
                                                  4. Cleancache and Frontswap (LWN)
                                                  5. The Case for Compressed Caching in Virtual Memory Systems
                                                  share|improve this answer

                                                    6

                                                    Indeed zcache appears to have been discontinued, as it was removed from kernel 3.11 for being effectively obsolete. The commit message of zcache removal reads

                                                    staging: zcache: delete it

                                                    zcache is obsolete and not used anymore, Bob Liu has rewritten it and
                                                    is submitting it for inclusion through the main -mm tree, as it should
                                                    have been done in the first place…

                                                    It appears that Bob Liu’s submission never got into mainline.

                                                    Now, the way I understand it, the page cache is automatically “dropped” (cleared) in an out-of-memory scenario. zcache actually implemented compression so it could maintain more filesystem pages (also known as “vfs cache” or “inode/dentry cache”) before being dropped.

                                                    The Linux kernel has zswap today that implements compressed disk-based swapping, but doesn’t compress filesystem pages.

                                                    I am not aware of a current day alternative for zcache.

                                                    Perhaps as a workaround, if you are concerned with performance degradation due to filesystem pages being freed, consider tuning vm.vfs_cache_pressure as instructed here.

                                                    For normal workloads it’s safe to just settle with zswap.

                                                    Additional reading:

                                                    1. zram vs zswap vs zcache Ultimate guide: when to use which one
                                                    2. Zswap, Zram, Zcache desktop usage scenarios
                                                    3. zswap (Arch Linux Wiki)
                                                    4. Cleancache and Frontswap (LWN)
                                                    5. The Case for Compressed Caching in Virtual Memory Systems
                                                    share|improve this answer

                                                      6

                                                      6

                                                      6

                                                      Indeed zcache appears to have been discontinued, as it was removed from kernel 3.11 for being effectively obsolete. The commit message of zcache removal reads

                                                      staging: zcache: delete it

                                                      zcache is obsolete and not used anymore, Bob Liu has rewritten it and
                                                      is submitting it for inclusion through the main -mm tree, as it should
                                                      have been done in the first place…

                                                      It appears that Bob Liu’s submission never got into mainline.

                                                      Now, the way I understand it, the page cache is automatically “dropped” (cleared) in an out-of-memory scenario. zcache actually implemented compression so it could maintain more filesystem pages (also known as “vfs cache” or “inode/dentry cache”) before being dropped.

                                                      The Linux kernel has zswap today that implements compressed disk-based swapping, but doesn’t compress filesystem pages.

                                                      I am not aware of a current day alternative for zcache.

                                                      Perhaps as a workaround, if you are concerned with performance degradation due to filesystem pages being freed, consider tuning vm.vfs_cache_pressure as instructed here.

                                                      For normal workloads it’s safe to just settle with zswap.

                                                      Additional reading:

                                                      1. zram vs zswap vs zcache Ultimate guide: when to use which one
                                                      2. Zswap, Zram, Zcache desktop usage scenarios
                                                      3. zswap (Arch Linux Wiki)
                                                      4. Cleancache and Frontswap (LWN)
                                                      5. The Case for Compressed Caching in Virtual Memory Systems
                                                      share|improve this answer

                                                      Indeed zcache appears to have been discontinued, as it was removed from kernel 3.11 for being effectively obsolete. The commit message of zcache removal reads

                                                      staging: zcache: delete it

                                                      zcache is obsolete and not used anymore, Bob Liu has rewritten it and
                                                      is submitting it for inclusion through the main -mm tree, as it should
                                                      have been done in the first place…

                                                      It appears that Bob Liu’s submission never got into mainline.

                                                      Now, the way I understand it, the page cache is automatically “dropped” (cleared) in an out-of-memory scenario. zcache actually implemented compression so it could maintain more filesystem pages (also known as “vfs cache” or “inode/dentry cache”) before being dropped.

                                                      The Linux kernel has zswap today that implements compressed disk-based swapping, but doesn’t compress filesystem pages.

                                                      I am not aware of a current day alternative for zcache.

                                                      Perhaps as a workaround, if you are concerned with performance degradation due to filesystem pages being freed, consider tuning vm.vfs_cache_pressure as instructed here.

                                                      For normal workloads it’s safe to just settle with zswap.

                                                      Additional reading:

                                                      1. zram vs zswap vs zcache Ultimate guide: when to use which one
                                                      2. Zswap, Zram, Zcache desktop usage scenarios
                                                      3. zswap (Arch Linux Wiki)
                                                      4. Cleancache and Frontswap (LWN)
                                                      5. The Case for Compressed Caching in Virtual Memory Systems
                                                      share|improve this answer

                                                      share|improve this answer

                                                      share|improve this answer

                                                      edited Jan 26 at 19:58

                                                      answered Jul 1 ’17 at 5:58

                                                      Marc.2377Marc.2377

                                                      285224

                                                      285224

                                                          draft saved
                                                          draft discarded

                                                          Thanks for contributing an answer to Unix & Linux Stack Exchange!

                                                          • Please be sure to answer the question. Provide details and share your research!

                                                          But avoid

                                                          • Asking for help, clarification, or responding to other answers.
                                                          • Making statements based on opinion; back them up with references or personal experience.

                                                          To learn more, see our tips on writing great answers.

                                                          draft saved

                                                          draft discarded

                                                          StackExchange.ready(
                                                          function () {
                                                          StackExchange.openid.initPostLogin(‘.new-post-login’, ‘https%3a%2f%2funix.stackexchange.com%2fquestions%2f373631%2fwhat-is-an-alternative-for-zcache%23new-answer’, ‘question_page’);
                                                          }
                                                          );

                                                          Post as a guest

                                                          Required, but never shown

                                                          Required, but never shown

                                                          Required, but never shown

                                                          Required, but never shown

                                                          Required, but never shown

                                                          Required, but never shown

                                                          Required, but never shown

                                                          Required, but never shown

                                                          Required, but never shown

                                                          Why isn’t Linux embraced as the official GNU kernel?

                                                          The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP

                                                          126

                                                          While I knew for quite some time the existence of Hurd, and its mission as the official GNU Operating System kernel, I was wondering how come Linux is not embraced as the official GNU kernel over the years, seeing as it is in a much better state than the Hurd?

                                                          Linux has been, more or less, serving this role 20+ years so far, however one can see that the GNU Project is keeping its distance when it comes to Linux. Why is this happening? Is it because of a dream that Hurd will (at some point in the future) be in a production quality level? Is it because the GNU project doesn’t see its mission reflected as much as it wants in Linux? Is it for other political reasons?

                                                          share|improve this question

                                                          • 20

                                                            Kind of “illegal” question here but interesting. With a bit luck it gets protected for “historical significance”, given brilliant enough answers… 😉

                                                            – Hauke Laging
                                                            Apr 28 ’13 at 14:20

                                                          • 2

                                                            @HaukeLaging Thanx mate. I too feel like this is a good question, and may produce interesting answers, and can not really understand why someone would cast a close vote. I am sure this is something that a lot of people would like to know.

                                                            – NlightNFotis
                                                            Apr 28 ’13 at 14:21

                                                          • 1

                                                            Oh, that’s simple: Someone would just have to point at the FAQ and shout “off-topic” AND “too broad”…

                                                            – Hauke Laging
                                                            Apr 28 ’13 at 14:24

                                                          • 5

                                                            @HaukeLaging You are so true, and I wish that people were more pragmatic and could recognise a question with some value instead of just pointing to the FAQ and shouting. One can easily see in S.O the most interesting questions being closed, only to wonder…

                                                            – NlightNFotis
                                                            Apr 28 ’13 at 14:27

                                                          • 4

                                                            I just DID re-read the FAQ. IMHO this is on topic here. Although it is a meta-question, but the question per se relates to Linux/Unix and is quite clear.

                                                            – Nils
                                                            Apr 29 ’13 at 13:14

                                                          126

                                                          While I knew for quite some time the existence of Hurd, and its mission as the official GNU Operating System kernel, I was wondering how come Linux is not embraced as the official GNU kernel over the years, seeing as it is in a much better state than the Hurd?

                                                          Linux has been, more or less, serving this role 20+ years so far, however one can see that the GNU Project is keeping its distance when it comes to Linux. Why is this happening? Is it because of a dream that Hurd will (at some point in the future) be in a production quality level? Is it because the GNU project doesn’t see its mission reflected as much as it wants in Linux? Is it for other political reasons?

                                                          share|improve this question

                                                          • 20

                                                            Kind of “illegal” question here but interesting. With a bit luck it gets protected for “historical significance”, given brilliant enough answers… 😉

                                                            – Hauke Laging
                                                            Apr 28 ’13 at 14:20

                                                          • 2

                                                            @HaukeLaging Thanx mate. I too feel like this is a good question, and may produce interesting answers, and can not really understand why someone would cast a close vote. I am sure this is something that a lot of people would like to know.

                                                            – NlightNFotis
                                                            Apr 28 ’13 at 14:21

                                                          • 1

                                                            Oh, that’s simple: Someone would just have to point at the FAQ and shout “off-topic” AND “too broad”…

                                                            – Hauke Laging
                                                            Apr 28 ’13 at 14:24

                                                          • 5

                                                            @HaukeLaging You are so true, and I wish that people were more pragmatic and could recognise a question with some value instead of just pointing to the FAQ and shouting. One can easily see in S.O the most interesting questions being closed, only to wonder…

                                                            – NlightNFotis
                                                            Apr 28 ’13 at 14:27

                                                          • 4

                                                            I just DID re-read the FAQ. IMHO this is on topic here. Although it is a meta-question, but the question per se relates to Linux/Unix and is quite clear.

                                                            – Nils
                                                            Apr 29 ’13 at 13:14

                                                          126

                                                          126

                                                          126

                                                          32

                                                          While I knew for quite some time the existence of Hurd, and its mission as the official GNU Operating System kernel, I was wondering how come Linux is not embraced as the official GNU kernel over the years, seeing as it is in a much better state than the Hurd?

                                                          Linux has been, more or less, serving this role 20+ years so far, however one can see that the GNU Project is keeping its distance when it comes to Linux. Why is this happening? Is it because of a dream that Hurd will (at some point in the future) be in a production quality level? Is it because the GNU project doesn’t see its mission reflected as much as it wants in Linux? Is it for other political reasons?

                                                          share|improve this question

                                                          While I knew for quite some time the existence of Hurd, and its mission as the official GNU Operating System kernel, I was wondering how come Linux is not embraced as the official GNU kernel over the years, seeing as it is in a much better state than the Hurd?

                                                          Linux has been, more or less, serving this role 20+ years so far, however one can see that the GNU Project is keeping its distance when it comes to Linux. Why is this happening? Is it because of a dream that Hurd will (at some point in the future) be in a production quality level? Is it because the GNU project doesn’t see its mission reflected as much as it wants in Linux? Is it for other political reasons?

                                                          linux-kernel gnu hurd

                                                          share|improve this question

                                                          share|improve this question

                                                          share|improve this question

                                                          share|improve this question

                                                          asked Apr 28 ’13 at 13:39

                                                          NlightNFotisNlightNFotis

                                                          4,58252437

                                                          4,58252437

                                                          • 20

                                                            Kind of “illegal” question here but interesting. With a bit luck it gets protected for “historical significance”, given brilliant enough answers… 😉

                                                            – Hauke Laging
                                                            Apr 28 ’13 at 14:20

                                                          • 2

                                                            @HaukeLaging Thanx mate. I too feel like this is a good question, and may produce interesting answers, and can not really understand why someone would cast a close vote. I am sure this is something that a lot of people would like to know.

                                                            – NlightNFotis
                                                            Apr 28 ’13 at 14:21

                                                          • 1

                                                            Oh, that’s simple: Someone would just have to point at the FAQ and shout “off-topic” AND “too broad”…

                                                            – Hauke Laging
                                                            Apr 28 ’13 at 14:24

                                                          • 5

                                                            @HaukeLaging You are so true, and I wish that people were more pragmatic and could recognise a question with some value instead of just pointing to the FAQ and shouting. One can easily see in S.O the most interesting questions being closed, only to wonder…

                                                            – NlightNFotis
                                                            Apr 28 ’13 at 14:27

                                                          • 4

                                                            I just DID re-read the FAQ. IMHO this is on topic here. Although it is a meta-question, but the question per se relates to Linux/Unix and is quite clear.

                                                            – Nils
                                                            Apr 29 ’13 at 13:14

                                                          • 20

                                                            Kind of “illegal” question here but interesting. With a bit luck it gets protected for “historical significance”, given brilliant enough answers… 😉

                                                            – Hauke Laging
                                                            Apr 28 ’13 at 14:20

                                                          • 2

                                                            @HaukeLaging Thanx mate. I too feel like this is a good question, and may produce interesting answers, and can not really understand why someone would cast a close vote. I am sure this is something that a lot of people would like to know.

                                                            – NlightNFotis
                                                            Apr 28 ’13 at 14:21

                                                          • 1

                                                            Oh, that’s simple: Someone would just have to point at the FAQ and shout “off-topic” AND “too broad”…

                                                            – Hauke Laging
                                                            Apr 28 ’13 at 14:24

                                                          • 5

                                                            @HaukeLaging You are so true, and I wish that people were more pragmatic and could recognise a question with some value instead of just pointing to the FAQ and shouting. One can easily see in S.O the most interesting questions being closed, only to wonder…

                                                            – NlightNFotis
                                                            Apr 28 ’13 at 14:27

                                                          • 4

                                                            I just DID re-read the FAQ. IMHO this is on topic here. Although it is a meta-question, but the question per se relates to Linux/Unix and is quite clear.

                                                            – Nils
                                                            Apr 29 ’13 at 13:14

                                                          20

                                                          20

                                                          Kind of “illegal” question here but interesting. With a bit luck it gets protected for “historical significance”, given brilliant enough answers… 😉

                                                          – Hauke Laging
                                                          Apr 28 ’13 at 14:20

                                                          Kind of “illegal” question here but interesting. With a bit luck it gets protected for “historical significance”, given brilliant enough answers… 😉

                                                          – Hauke Laging
                                                          Apr 28 ’13 at 14:20

                                                          2

                                                          2

                                                          @HaukeLaging Thanx mate. I too feel like this is a good question, and may produce interesting answers, and can not really understand why someone would cast a close vote. I am sure this is something that a lot of people would like to know.

                                                          – NlightNFotis
                                                          Apr 28 ’13 at 14:21

                                                          @HaukeLaging Thanx mate. I too feel like this is a good question, and may produce interesting answers, and can not really understand why someone would cast a close vote. I am sure this is something that a lot of people would like to know.

                                                          – NlightNFotis
                                                          Apr 28 ’13 at 14:21

                                                          1

                                                          1

                                                          Oh, that’s simple: Someone would just have to point at the FAQ and shout “off-topic” AND “too broad”…

                                                          – Hauke Laging
                                                          Apr 28 ’13 at 14:24

                                                          Oh, that’s simple: Someone would just have to point at the FAQ and shout “off-topic” AND “too broad”…

                                                          – Hauke Laging
                                                          Apr 28 ’13 at 14:24

                                                          5

                                                          5

                                                          @HaukeLaging You are so true, and I wish that people were more pragmatic and could recognise a question with some value instead of just pointing to the FAQ and shouting. One can easily see in S.O the most interesting questions being closed, only to wonder…

                                                          – NlightNFotis
                                                          Apr 28 ’13 at 14:27

                                                          @HaukeLaging You are so true, and I wish that people were more pragmatic and could recognise a question with some value instead of just pointing to the FAQ and shouting. One can easily see in S.O the most interesting questions being closed, only to wonder…

                                                          – NlightNFotis
                                                          Apr 28 ’13 at 14:27

                                                          4

                                                          4

                                                          I just DID re-read the FAQ. IMHO this is on topic here. Although it is a meta-question, but the question per se relates to Linux/Unix and is quite clear.

                                                          – Nils
                                                          Apr 29 ’13 at 13:14

                                                          I just DID re-read the FAQ. IMHO this is on topic here. Although it is a meta-question, but the question per se relates to Linux/Unix and is quite clear.

                                                          – Nils
                                                          Apr 29 ’13 at 13:14

                                                          6 Answers
                                                          6

                                                          active

                                                          oldest

                                                          votes

                                                          149

                                                          GNU will not adopt something as a project unless the developers agree to certain stipulations which bind all official GNU projects.

                                                          Currently the Linux kernel probably does not fit these restrictions, and there is nothing for Linus Torvalds, kernel.org, et al. to gain from placing themselves under the GNU umbrella, and a lot to lose — the aforementioned binding agreement, and the public perception that the kernel is now a GNU project, which would have a mostly negative impact. GNU’s parent organization, the Free Software Foundation (FSF), is a political organization and Torvalds has made various public criticisms of it and the somewhat controversial, iconoclastic lifetime leader/founder of GNU and the FSF, Richard M. Stallman.

                                                          Further, the Linux kernel does not require the GNU userspace any more than the GNU userspace requires the Linux kernel. This independence should be considered a good thing by the basic principles of software engineering, which favour modularity and looser coupling as opposed to the opposite (monolithic things with tight coupling).

                                                          Another point against this idea is that while HURD may not be of interest to as many people as Linux, the developers and users of HURD may object to having their project effectively dustbinned in a popularity contest. And good for them; “competition” of this sort is a positive thing, whereas bowing to monopolization is not — you end up with massive entities that stifle creativity in part because they are prone to monolithic/meglomaniacal control. The Linux Foundation already is an independent organization, it might as well stay that way.

                                                          share|improve this answer

                                                          • 13

                                                            Thanx for the fantastic answer. +1 from me, and 2 notes: 1) Do not misunderstand me: I have a high opinion of the Hurd. I am a hurd developer myself. However (I believe that) it is not arguable that Linux is an a better state. 2) I can see why Linux wouldn’t want to be coupled with GNU, but from what I can see it’s the GNU Project that demonstrates the greatest objections to this. Could you elaborate on this?

                                                            – NlightNFotis
                                                            Apr 28 ’13 at 14:36

                                                          • 14

                                                            @NlightNFotis : Are you sure it is mostly a GNU objection? Just reading this: torvalds-family.blogspot.ca/2008/11/black-and-white.html . To me it seems everyone involved is much happier without a formal relationship.

                                                            – goldilocks
                                                            Apr 28 ’13 at 14:40

                                                          • Thanks for this blog post. It makes more sense now. I will keep the question open for some time to see if people elaborate with more fantastic answers, and if not, yours will be selected as the “answer” to this question. Just one more last “petition”. Would you mind, rephrasing if I may say, the “you may not have a high opinion of the HURD” because it makes me feel kinda uneasy and makes me feel bad about myself.

                                                            – NlightNFotis
                                                            Apr 28 ’13 at 14:46

                                                          • 4

                                                            I really like the ideas behind Hurd. What just came to my mind: The ongoing trend towards virtualization might turn out to be a big help for Hurd to see at least a part of the real world. You don’t need a complete OS to make someone use it. If you have a few applications which have clear advantages from running under Hurd then you may simply put them into a Hurd VM. Similar to chrooting, lxc or whatever.

                                                            – Hauke Laging
                                                            Apr 28 ’13 at 14:48

                                                          • 2

                                                            @NlightNFotis rephrased 🙂

                                                            – goldilocks
                                                            Apr 28 ’13 at 14:56

                                                          76

                                                          There is much documentation and discussion on this on the net.

                                                          The short answer that there are deep ideological differences between the GNU project and the Linux kernel projects, which gets in the way of a possible unification.

                                                          The focus of the FSF, the organization behind the GNU Project, is on ideological purity with respect to the idea of free software. This largely takes its lead from the views of the FSF/GNU founder, Richard Stallman. Additionally, as goldilocks has mentioned, the FSF is now mostly a political advocacy organization. For a long time now, the FSF has not put significant resources into the GNU Project, though they do provide support infrastructure.

                                                          The Linux kernel project has a much more pragmatic stance on software freedom, again to a large extent stemming from its founder, Linus Torvalds. The Linux kernel project is primarily a free software project, consisting of software developers specializing in kernel/OS development, and in no respect a political advocacy organization.

                                                          As specific examples of how these ideologies play out in practice, consider

                                                          1) That Stallman considers as unacceptable the fact that the Debian project “advertises” non-free software by maintaining the non-free portion of its software archive. This is ironic, since the Debian project has a focus on software freedom that is quite similar to the FSF, while not so ideologically rigid.

                                                          2) That the Linux kernel allows (non-free) binary kernel modules to be used with the kernel. While the kernel developers are not enthusiastic about this, they do tolerate it, but it is hard to imagine the FSF doing so.

                                                          It is also worth noting that Stallman’s attempt to name the operating systems based on the Linux kernel as GNU/Linux has probably not improved relations between the FSF and the Linux kernel community, though I have no specific data about this.

                                                          Aside from anything else, as goldilocks mentions, the FSF has various rules that a GNU project must conform to. This includes copyright assignment of all code to the FSF. This would all by itself be a deal breaker, since Linus Torvalds has never required such copyright assignment. Therefore, if the Linux kernel were to become part of the GNU project, all significant contributions to the Linux kernel would have to have their copyright assigned to the FSF. Given the age and size of the project, and the number of contributors, this is basically impossible. Far smaller and younger projects (e.g. Mercurial) have found software relicensing a daunting task.

                                                          Please note that this answer is in no way intended as criticism of either the FSF or the Linux kernel developers. Both sides have their own valid viewpoints. However, the reality of the situation is that they are to some extent incompatible viewpoints.

                                                          share|improve this answer

                                                          • 4

                                                            +1 I like this answer. Solid information on the issue. I appreciate your input.

                                                            – NlightNFotis
                                                            Apr 28 ’13 at 16:47

                                                          • 1

                                                            It’s worth noting that in many countries in Europe the ‘copyright assignment’ is not legally possible. There are other possibilities (contributors agreement) but copyright assignment might be not legally possible – not only technically.

                                                            – Maciej Piechotka
                                                            Apr 28 ’13 at 17:24

                                                          • 1

                                                            @FaheemMitha, not by the GNU definition because the binary blobs most certainly are part of the kernel; they are distributed in the kernel source code, and built into the kernel binaries and required for them to function.

                                                            – psusi
                                                            Apr 28 ’13 at 18:43

                                                          • 8

                                                            Ahh, the proprietary drivers are another thing that GNU objects to. This was one of the reasons for GPLv3; to bar proprietary modules from being linked to free code, even at runtime, and why Linux chose to stay with GPLv2.

                                                            – psusi
                                                            Apr 28 ’13 at 19:59

                                                          • 1

                                                            @vonbrand, whether you agree with it or not is irrelevant; it is the position of the FSF and because of that, Linux could never be a GNU project.

                                                            – psusi
                                                            Apr 29 ’13 at 13:36

                                                          34

                                                          I am quoting a comment by Richard Stallman, regarding the decision to roll with the Hurd rather than Linux.

                                                          People sometimes ask, “Why did the FSF develop a new free kernel
                                                          instead of using Linux?” It’s a reasonable question. The answer,
                                                          briefly, is that that is not the question we faced.

                                                          When we started developing the Hurd in 1990, the question facing us
                                                          was, “How can we get a free kernel for the GNU system?” There was no
                                                          free Unix-like kernel then, and we knew of no other plan to write one.
                                                          The only way we could expect to have a free kernel was to write it
                                                          ourselves. So we started.

                                                          We heard about Linux after its release. At that time, the question
                                                          facing us was, “Should we cancel the Hurd project and use Linux
                                                          instead?”

                                                          We heard that Linux was not at all portable (this may not be true
                                                          today, but that’s what we heard then). And we heard that Linux was
                                                          architecturally on a par with the Unix kernel; our work was leading to
                                                          something much more powerful.

                                                          Given the years of work we had already put into the Hurd, we decided
                                                          to finish it rather than throw them away.

                                                          If we did face the question that people ask—if Linux were already
                                                          available, and we were considering whether to start writing another
                                                          kernel—we would not do it. Instead we would choose another project,
                                                          something to do a job that no existing free software can do.

                                                          But we did start the Hurd, back then, and now we have made it work. We
                                                          hope its superior architecture will make free operating systems more
                                                          powerful.

                                                          share|improve this answer

                                                          • 6

                                                            Despite the fantastic answers provided to the question already, I will select this answer as the canonical one to the question because it demonstrates the rationale behind choice of sticking with the Hurd, straight from the creator of the GNU Project, Richard Stallman.

                                                            – NlightNFotis
                                                            Apr 30 ’13 at 23:18

                                                          • 9

                                                            Note “this may not be true today” – RMS’ opinion of Linux seems to be based on hearsay, not knowledge.

                                                            – Martin Schröder
                                                            May 1 ’13 at 13:27

                                                          • 17

                                                            @Martin: (Late Reply, but:) When Torvalds first announced Linux, it was x86 specific, with zero plans to make it portable. In the intial thread Linus flat out said “I’d say that porting is impossible”. Thus, rms had no reason to originally believe that Linux would grow into what it has today. Evidence from the mouth of the project leader is hardly hearsay.

                                                            – Kevin Cathcart
                                                            Aug 16 ’13 at 21:33

                                                          • @KevinCathcart: RMS/FSF should have studied the code themself instead of relying on others (“we heard”).

                                                            – Martin Schröder
                                                            Aug 17 ’13 at 7:22

                                                          • 19

                                                            @MartinSchröder: Why study the code when the Project Leader explicitly said it would not be portable? Anyway, Linux was announced in 1991. It took until April of 1994 (release 1.1.45) before Linux even added the folders for architecture ports. It would take longer before any ports were practical. If the FSF made their decision to continue the Hurd in 1992 or 1993, looking at the code would only have reinforced that the code was non-portable.

                                                            – Kevin Cathcart
                                                            Aug 19 ’13 at 16:53

                                                          4

                                                          I’m just adding my 2 cent here, I think that what it’s been discussed at this point makes a lot of sense but there is one major aspect that I think can really polarize the GNU foundation and it’s the fact that Linux is becoming more and more a place where large corporates are investing real money and time, the idea that linux is kind of an home-made project it’s not true, not even a bit, maybe there is some random guy trying to get attention on the scene while giving a patch away, but for the large part linux it’s a job for corporations.

                                                          share|improve this answer

                                                          • 1

                                                            I don’t think the FSF has a problem with corporate support of software projects. Their main focus is on the principles of free software.

                                                            – Faheem Mitha
                                                            Jun 14 ’13 at 9:22

                                                          • Corporate dominance was a big concern the GNU GPL was intended to address. Permissively licensed software was actually normal procedure at both MIT and Berkeley, but once code was commercialized it was promptly closed. So for example, I could checkout the Linux source today and all the commercially developed improvements will benefit my potential project. Or my next small personal project may use just a couple blocks, the point is that any released improvements benefit whoever works with the code next.

                                                            – J. M. Becker
                                                            Jan 25 ’14 at 1:24

                                                          1

                                                          Another explanation found on the FAQ of gnu.org:

                                                          Making the GNU Hurd work well enough to compete with Linux would be a
                                                          big job, and it’s not clearly necessary. The only thing ethically
                                                          wrong with Linux as a kernel is its inclusion of firmware “blobs”; the
                                                          best fix for that problem is developing free replacement for the
                                                          blobs.

                                                          share|improve this answer

                                                            -6

                                                            Linux can not be Unix, since Linux is not conforming to Posix.

                                                            So even without political hassle Linux can not meet the design goal for Hurd.

                                                            Cite:
                                                            “The Hurd is the GNU project’s replacement for UNIX, a popular operating system kernel.”

                                                            Astonishing, that there is a Debian/Hurd-Projekt. But that is possibly a different story…

                                                            BTW: Windows (since NT/XP) is based on the MACH-kernel, too.

                                                            share|improve this answer

                                                            • 8

                                                              If you are going to claim that Linux is not POSIX conformant, you’re going to have to back that up a bit. Including where the FSF says they require an absolutely 100% POSIX compliant kernel. By the way, Unix is not POSIX. Unix (trademarked) is a specific proprietary OS, so it goes without saying that no other OS can be that OS.

                                                              – psusi
                                                              Apr 29 ’13 at 13:40

                                                            • 6

                                                              Citation for the Windows kernel being based on MACH? Wikipedia says they share some design choices; but with MACH being the prototypical microkernel while the majority of Windows OS services run in the kernel not userland. The only major OSS component in the Windows kernel that I’m aware of was the network stack which used to be based on the BSD implementation; however it was ripped out and replaced with one that better interfaced with the rest of the os design several versions ago (IIRC in XP or 2k).

                                                              – Dan Neely
                                                              Apr 29 ’13 at 13:59

                                                            • 14

                                                              But GNU’s Not Unix, either.

                                                              – Simon
                                                              Apr 29 ’13 at 16:02

                                                            • 6

                                                              @Nils, the question you linked contradicts your position, rather than supports it.

                                                              – psusi
                                                              Apr 29 ’13 at 16:08

                                                            • 8

                                                              @Nils, the Mach nonsense is another bit of popular misconception. NT has nothing in common with mach. Its “subsystem servers” are no different than unix daemons, which do not make a microkernel. Originally the gui was implemented in user mode, and this had only a passing resemblance to a microkernel system ( though so is Xwindows, that does not make Linux a microkernel ), but this was scrapped in NT4 and moved to the kernel.

                                                              – psusi
                                                              Apr 29 ’13 at 16:20

                                                            Your Answer

                                                            StackExchange.ready(function() {
                                                            var channelOptions = {
                                                            tags: “”.split(” “),
                                                            id: “106”
                                                            };
                                                            initTagRenderer(“”.split(” “), “”.split(” “), channelOptions);

                                                            StackExchange.using(“externalEditor”, function() {
                                                            // Have to fire editor after snippets, if snippets enabled
                                                            if (StackExchange.settings.snippets.snippetsEnabled) {
                                                            StackExchange.using(“snippets”, function() {
                                                            createEditor();
                                                            });
                                                            }
                                                            else {
                                                            createEditor();
                                                            }
                                                            });

                                                            function createEditor() {
                                                            StackExchange.prepareEditor({
                                                            heartbeatType: ‘answer’,
                                                            autoActivateHeartbeat: false,
                                                            convertImagesToLinks: false,
                                                            noModals: true,
                                                            showLowRepImageUploadWarning: true,
                                                            reputationToPostImages: null,
                                                            bindNavPrevention: true,
                                                            postfix: “”,
                                                            imageUploader: {
                                                            brandingHtml: “Powered by u003ca class=”icon-imgur-white” href=”https://imgur.com/”u003eu003c/au003e”,
                                                            contentPolicyHtml: “User contributions licensed under u003ca href=”https://creativecommons.org/licenses/by-sa/3.0/”u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href=”https://stackoverflow.com/legal/content-policy”u003e(content policy)u003c/au003e”,
                                                            allowUrls: true
                                                            },
                                                            onDemand: true,
                                                            discardSelector: “.discard-answer”
                                                            ,immediatelyShowMarkdownHelp:true
                                                            });

                                                            }
                                                            });

                                                            draft saved
                                                            draft discarded

                                                            StackExchange.ready(
                                                            function () {
                                                            StackExchange.openid.initPostLogin(‘.new-post-login’, ‘https%3a%2f%2funix.stackexchange.com%2fquestions%2f73950%2fwhy-isnt-linux-embraced-as-the-official-gnu-kernel%23new-answer’, ‘question_page’);
                                                            }
                                                            );

                                                            Post as a guest

                                                            Required, but never shown

                                                            6 Answers
                                                            6

                                                            active

                                                            oldest

                                                            votes

                                                            6 Answers
                                                            6

                                                            active

                                                            oldest

                                                            votes

                                                            active

                                                            oldest

                                                            votes

                                                            active

                                                            oldest

                                                            votes

                                                            149

                                                            GNU will not adopt something as a project unless the developers agree to certain stipulations which bind all official GNU projects.

                                                            Currently the Linux kernel probably does not fit these restrictions, and there is nothing for Linus Torvalds, kernel.org, et al. to gain from placing themselves under the GNU umbrella, and a lot to lose — the aforementioned binding agreement, and the public perception that the kernel is now a GNU project, which would have a mostly negative impact. GNU’s parent organization, the Free Software Foundation (FSF), is a political organization and Torvalds has made various public criticisms of it and the somewhat controversial, iconoclastic lifetime leader/founder of GNU and the FSF, Richard M. Stallman.

                                                            Further, the Linux kernel does not require the GNU userspace any more than the GNU userspace requires the Linux kernel. This independence should be considered a good thing by the basic principles of software engineering, which favour modularity and looser coupling as opposed to the opposite (monolithic things with tight coupling).

                                                            Another point against this idea is that while HURD may not be of interest to as many people as Linux, the developers and users of HURD may object to having their project effectively dustbinned in a popularity contest. And good for them; “competition” of this sort is a positive thing, whereas bowing to monopolization is not — you end up with massive entities that stifle creativity in part because they are prone to monolithic/meglomaniacal control. The Linux Foundation already is an independent organization, it might as well stay that way.

                                                            share|improve this answer

                                                            • 13

                                                              Thanx for the fantastic answer. +1 from me, and 2 notes: 1) Do not misunderstand me: I have a high opinion of the Hurd. I am a hurd developer myself. However (I believe that) it is not arguable that Linux is an a better state. 2) I can see why Linux wouldn’t want to be coupled with GNU, but from what I can see it’s the GNU Project that demonstrates the greatest objections to this. Could you elaborate on this?

                                                              – NlightNFotis
                                                              Apr 28 ’13 at 14:36

                                                            • 14

                                                              @NlightNFotis : Are you sure it is mostly a GNU objection? Just reading this: torvalds-family.blogspot.ca/2008/11/black-and-white.html . To me it seems everyone involved is much happier without a formal relationship.

                                                              – goldilocks
                                                              Apr 28 ’13 at 14:40

                                                            • Thanks for this blog post. It makes more sense now. I will keep the question open for some time to see if people elaborate with more fantastic answers, and if not, yours will be selected as the “answer” to this question. Just one more last “petition”. Would you mind, rephrasing if I may say, the “you may not have a high opinion of the HURD” because it makes me feel kinda uneasy and makes me feel bad about myself.

                                                              – NlightNFotis
                                                              Apr 28 ’13 at 14:46

                                                            • 4

                                                              I really like the ideas behind Hurd. What just came to my mind: The ongoing trend towards virtualization might turn out to be a big help for Hurd to see at least a part of the real world. You don’t need a complete OS to make someone use it. If you have a few applications which have clear advantages from running under Hurd then you may simply put them into a Hurd VM. Similar to chrooting, lxc or whatever.

                                                              – Hauke Laging
                                                              Apr 28 ’13 at 14:48

                                                            • 2

                                                              @NlightNFotis rephrased 🙂

                                                              – goldilocks
                                                              Apr 28 ’13 at 14:56

                                                            149

                                                            GNU will not adopt something as a project unless the developers agree to certain stipulations which bind all official GNU projects.

                                                            Currently the Linux kernel probably does not fit these restrictions, and there is nothing for Linus Torvalds, kernel.org, et al. to gain from placing themselves under the GNU umbrella, and a lot to lose — the aforementioned binding agreement, and the public perception that the kernel is now a GNU project, which would have a mostly negative impact. GNU’s parent organization, the Free Software Foundation (FSF), is a political organization and Torvalds has made various public criticisms of it and the somewhat controversial, iconoclastic lifetime leader/founder of GNU and the FSF, Richard M. Stallman.

                                                            Further, the Linux kernel does not require the GNU userspace any more than the GNU userspace requires the Linux kernel. This independence should be considered a good thing by the basic principles of software engineering, which favour modularity and looser coupling as opposed to the opposite (monolithic things with tight coupling).

                                                            Another point against this idea is that while HURD may not be of interest to as many people as Linux, the developers and users of HURD may object to having their project effectively dustbinned in a popularity contest. And good for them; “competition” of this sort is a positive thing, whereas bowing to monopolization is not — you end up with massive entities that stifle creativity in part because they are prone to monolithic/meglomaniacal control. The Linux Foundation already is an independent organization, it might as well stay that way.

                                                            share|improve this answer

                                                            • 13

                                                              Thanx for the fantastic answer. +1 from me, and 2 notes: 1) Do not misunderstand me: I have a high opinion of the Hurd. I am a hurd developer myself. However (I believe that) it is not arguable that Linux is an a better state. 2) I can see why Linux wouldn’t want to be coupled with GNU, but from what I can see it’s the GNU Project that demonstrates the greatest objections to this. Could you elaborate on this?

                                                              – NlightNFotis
                                                              Apr 28 ’13 at 14:36

                                                            • 14

                                                              @NlightNFotis : Are you sure it is mostly a GNU objection? Just reading this: torvalds-family.blogspot.ca/2008/11/black-and-white.html . To me it seems everyone involved is much happier without a formal relationship.

                                                              – goldilocks
                                                              Apr 28 ’13 at 14:40

                                                            • Thanks for this blog post. It makes more sense now. I will keep the question open for some time to see if people elaborate with more fantastic answers, and if not, yours will be selected as the “answer” to this question. Just one more last “petition”. Would you mind, rephrasing if I may say, the “you may not have a high opinion of the HURD” because it makes me feel kinda uneasy and makes me feel bad about myself.

                                                              – NlightNFotis
                                                              Apr 28 ’13 at 14:46

                                                            • 4

                                                              I really like the ideas behind Hurd. What just came to my mind: The ongoing trend towards virtualization might turn out to be a big help for Hurd to see at least a part of the real world. You don’t need a complete OS to make someone use it. If you have a few applications which have clear advantages from running under Hurd then you may simply put them into a Hurd VM. Similar to chrooting, lxc or whatever.

                                                              – Hauke Laging
                                                              Apr 28 ’13 at 14:48

                                                            • 2

                                                              @NlightNFotis rephrased 🙂

                                                              – goldilocks
                                                              Apr 28 ’13 at 14:56

                                                            149

                                                            149

                                                            149

                                                            GNU will not adopt something as a project unless the developers agree to certain stipulations which bind all official GNU projects.

                                                            Currently the Linux kernel probably does not fit these restrictions, and there is nothing for Linus Torvalds, kernel.org, et al. to gain from placing themselves under the GNU umbrella, and a lot to lose — the aforementioned binding agreement, and the public perception that the kernel is now a GNU project, which would have a mostly negative impact. GNU’s parent organization, the Free Software Foundation (FSF), is a political organization and Torvalds has made various public criticisms of it and the somewhat controversial, iconoclastic lifetime leader/founder of GNU and the FSF, Richard M. Stallman.

                                                            Further, the Linux kernel does not require the GNU userspace any more than the GNU userspace requires the Linux kernel. This independence should be considered a good thing by the basic principles of software engineering, which favour modularity and looser coupling as opposed to the opposite (monolithic things with tight coupling).

                                                            Another point against this idea is that while HURD may not be of interest to as many people as Linux, the developers and users of HURD may object to having their project effectively dustbinned in a popularity contest. And good for them; “competition” of this sort is a positive thing, whereas bowing to monopolization is not — you end up with massive entities that stifle creativity in part because they are prone to monolithic/meglomaniacal control. The Linux Foundation already is an independent organization, it might as well stay that way.

                                                            share|improve this answer

                                                            GNU will not adopt something as a project unless the developers agree to certain stipulations which bind all official GNU projects.

                                                            Currently the Linux kernel probably does not fit these restrictions, and there is nothing for Linus Torvalds, kernel.org, et al. to gain from placing themselves under the GNU umbrella, and a lot to lose — the aforementioned binding agreement, and the public perception that the kernel is now a GNU project, which would have a mostly negative impact. GNU’s parent organization, the Free Software Foundation (FSF), is a political organization and Torvalds has made various public criticisms of it and the somewhat controversial, iconoclastic lifetime leader/founder of GNU and the FSF, Richard M. Stallman.

                                                            Further, the Linux kernel does not require the GNU userspace any more than the GNU userspace requires the Linux kernel. This independence should be considered a good thing by the basic principles of software engineering, which favour modularity and looser coupling as opposed to the opposite (monolithic things with tight coupling).

                                                            Another point against this idea is that while HURD may not be of interest to as many people as Linux, the developers and users of HURD may object to having their project effectively dustbinned in a popularity contest. And good for them; “competition” of this sort is a positive thing, whereas bowing to monopolization is not — you end up with massive entities that stifle creativity in part because they are prone to monolithic/meglomaniacal control. The Linux Foundation already is an independent organization, it might as well stay that way.

                                                            share|improve this answer

                                                            share|improve this answer

                                                            share|improve this answer

                                                            edited Jan 26 at 16:33

                                                            answered Apr 28 ’13 at 14:32

                                                            goldilocksgoldilocks

                                                            62.3k14152210

                                                            62.3k14152210

                                                            • 13

                                                              Thanx for the fantastic answer. +1 from me, and 2 notes: 1) Do not misunderstand me: I have a high opinion of the Hurd. I am a hurd developer myself. However (I believe that) it is not arguable that Linux is an a better state. 2) I can see why Linux wouldn’t want to be coupled with GNU, but from what I can see it’s the GNU Project that demonstrates the greatest objections to this. Could you elaborate on this?

                                                              – NlightNFotis
                                                              Apr 28 ’13 at 14:36

                                                            • 14

                                                              @NlightNFotis : Are you sure it is mostly a GNU objection? Just reading this: torvalds-family.blogspot.ca/2008/11/black-and-white.html . To me it seems everyone involved is much happier without a formal relationship.

                                                              – goldilocks
                                                              Apr 28 ’13 at 14:40

                                                            • Thanks for this blog post. It makes more sense now. I will keep the question open for some time to see if people elaborate with more fantastic answers, and if not, yours will be selected as the “answer” to this question. Just one more last “petition”. Would you mind, rephrasing if I may say, the “you may not have a high opinion of the HURD” because it makes me feel kinda uneasy and makes me feel bad about myself.

                                                              – NlightNFotis
                                                              Apr 28 ’13 at 14:46

                                                            • 4

                                                              I really like the ideas behind Hurd. What just came to my mind: The ongoing trend towards virtualization might turn out to be a big help for Hurd to see at least a part of the real world. You don’t need a complete OS to make someone use it. If you have a few applications which have clear advantages from running under Hurd then you may simply put them into a Hurd VM. Similar to chrooting, lxc or whatever.

                                                              – Hauke Laging
                                                              Apr 28 ’13 at 14:48

                                                            • 2

                                                              @NlightNFotis rephrased 🙂

                                                              – goldilocks
                                                              Apr 28 ’13 at 14:56

                                                            • 13

                                                              Thanx for the fantastic answer. +1 from me, and 2 notes: 1) Do not misunderstand me: I have a high opinion of the Hurd. I am a hurd developer myself. However (I believe that) it is not arguable that Linux is an a better state. 2) I can see why Linux wouldn’t want to be coupled with GNU, but from what I can see it’s the GNU Project that demonstrates the greatest objections to this. Could you elaborate on this?

                                                              – NlightNFotis
                                                              Apr 28 ’13 at 14:36

                                                            • 14

                                                              @NlightNFotis : Are you sure it is mostly a GNU objection? Just reading this: torvalds-family.blogspot.ca/2008/11/black-and-white.html . To me it seems everyone involved is much happier without a formal relationship.

                                                              – goldilocks
                                                              Apr 28 ’13 at 14:40

                                                            • Thanks for this blog post. It makes more sense now. I will keep the question open for some time to see if people elaborate with more fantastic answers, and if not, yours will be selected as the “answer” to this question. Just one more last “petition”. Would you mind, rephrasing if I may say, the “you may not have a high opinion of the HURD” because it makes me feel kinda uneasy and makes me feel bad about myself.

                                                              – NlightNFotis
                                                              Apr 28 ’13 at 14:46

                                                            • 4

                                                              I really like the ideas behind Hurd. What just came to my mind: The ongoing trend towards virtualization might turn out to be a big help for Hurd to see at least a part of the real world. You don’t need a complete OS to make someone use it. If you have a few applications which have clear advantages from running under Hurd then you may simply put them into a Hurd VM. Similar to chrooting, lxc or whatever.

                                                              – Hauke Laging
                                                              Apr 28 ’13 at 14:48

                                                            • 2

                                                              @NlightNFotis rephrased 🙂

                                                              – goldilocks
                                                              Apr 28 ’13 at 14:56

                                                            13

                                                            13

                                                            Thanx for the fantastic answer. +1 from me, and 2 notes: 1) Do not misunderstand me: I have a high opinion of the Hurd. I am a hurd developer myself. However (I believe that) it is not arguable that Linux is an a better state. 2) I can see why Linux wouldn’t want to be coupled with GNU, but from what I can see it’s the GNU Project that demonstrates the greatest objections to this. Could you elaborate on this?

                                                            – NlightNFotis
                                                            Apr 28 ’13 at 14:36

                                                            Thanx for the fantastic answer. +1 from me, and 2 notes: 1) Do not misunderstand me: I have a high opinion of the Hurd. I am a hurd developer myself. However (I believe that) it is not arguable that Linux is an a better state. 2) I can see why Linux wouldn’t want to be coupled with GNU, but from what I can see it’s the GNU Project that demonstrates the greatest objections to this. Could you elaborate on this?

                                                            – NlightNFotis
                                                            Apr 28 ’13 at 14:36

                                                            14

                                                            14

                                                            @NlightNFotis : Are you sure it is mostly a GNU objection? Just reading this: torvalds-family.blogspot.ca/2008/11/black-and-white.html . To me it seems everyone involved is much happier without a formal relationship.

                                                            – goldilocks
                                                            Apr 28 ’13 at 14:40

                                                            @NlightNFotis : Are you sure it is mostly a GNU objection? Just reading this: torvalds-family.blogspot.ca/2008/11/black-and-white.html . To me it seems everyone involved is much happier without a formal relationship.

                                                            – goldilocks
                                                            Apr 28 ’13 at 14:40

                                                            Thanks for this blog post. It makes more sense now. I will keep the question open for some time to see if people elaborate with more fantastic answers, and if not, yours will be selected as the “answer” to this question. Just one more last “petition”. Would you mind, rephrasing if I may say, the “you may not have a high opinion of the HURD” because it makes me feel kinda uneasy and makes me feel bad about myself.

                                                            – NlightNFotis
                                                            Apr 28 ’13 at 14:46

                                                            Thanks for this blog post. It makes more sense now. I will keep the question open for some time to see if people elaborate with more fantastic answers, and if not, yours will be selected as the “answer” to this question. Just one more last “petition”. Would you mind, rephrasing if I may say, the “you may not have a high opinion of the HURD” because it makes me feel kinda uneasy and makes me feel bad about myself.

                                                            – NlightNFotis
                                                            Apr 28 ’13 at 14:46

                                                            4

                                                            4

                                                            I really like the ideas behind Hurd. What just came to my mind: The ongoing trend towards virtualization might turn out to be a big help for Hurd to see at least a part of the real world. You don’t need a complete OS to make someone use it. If you have a few applications which have clear advantages from running under Hurd then you may simply put them into a Hurd VM. Similar to chrooting, lxc or whatever.

                                                            – Hauke Laging
                                                            Apr 28 ’13 at 14:48

                                                            I really like the ideas behind Hurd. What just came to my mind: The ongoing trend towards virtualization might turn out to be a big help for Hurd to see at least a part of the real world. You don’t need a complete OS to make someone use it. If you have a few applications which have clear advantages from running under Hurd then you may simply put them into a Hurd VM. Similar to chrooting, lxc or whatever.

                                                            – Hauke Laging
                                                            Apr 28 ’13 at 14:48

                                                            2

                                                            2

                                                            @NlightNFotis rephrased 🙂

                                                            – goldilocks
                                                            Apr 28 ’13 at 14:56

                                                            @NlightNFotis rephrased 🙂

                                                            – goldilocks
                                                            Apr 28 ’13 at 14:56

                                                            76

                                                            There is much documentation and discussion on this on the net.

                                                            The short answer that there are deep ideological differences between the GNU project and the Linux kernel projects, which gets in the way of a possible unification.

                                                            The focus of the FSF, the organization behind the GNU Project, is on ideological purity with respect to the idea of free software. This largely takes its lead from the views of the FSF/GNU founder, Richard Stallman. Additionally, as goldilocks has mentioned, the FSF is now mostly a political advocacy organization. For a long time now, the FSF has not put significant resources into the GNU Project, though they do provide support infrastructure.

                                                            The Linux kernel project has a much more pragmatic stance on software freedom, again to a large extent stemming from its founder, Linus Torvalds. The Linux kernel project is primarily a free software project, consisting of software developers specializing in kernel/OS development, and in no respect a political advocacy organization.

                                                            As specific examples of how these ideologies play out in practice, consider

                                                            1) That Stallman considers as unacceptable the fact that the Debian project “advertises” non-free software by maintaining the non-free portion of its software archive. This is ironic, since the Debian project has a focus on software freedom that is quite similar to the FSF, while not so ideologically rigid.

                                                            2) That the Linux kernel allows (non-free) binary kernel modules to be used with the kernel. While the kernel developers are not enthusiastic about this, they do tolerate it, but it is hard to imagine the FSF doing so.

                                                            It is also worth noting that Stallman’s attempt to name the operating systems based on the Linux kernel as GNU/Linux has probably not improved relations between the FSF and the Linux kernel community, though I have no specific data about this.

                                                            Aside from anything else, as goldilocks mentions, the FSF has various rules that a GNU project must conform to. This includes copyright assignment of all code to the FSF. This would all by itself be a deal breaker, since Linus Torvalds has never required such copyright assignment. Therefore, if the Linux kernel were to become part of the GNU project, all significant contributions to the Linux kernel would have to have their copyright assigned to the FSF. Given the age and size of the project, and the number of contributors, this is basically impossible. Far smaller and younger projects (e.g. Mercurial) have found software relicensing a daunting task.

                                                            Please note that this answer is in no way intended as criticism of either the FSF or the Linux kernel developers. Both sides have their own valid viewpoints. However, the reality of the situation is that they are to some extent incompatible viewpoints.

                                                            share|improve this answer

                                                            • 4

                                                              +1 I like this answer. Solid information on the issue. I appreciate your input.

                                                              – NlightNFotis
                                                              Apr 28 ’13 at 16:47

                                                            • 1

                                                              It’s worth noting that in many countries in Europe the ‘copyright assignment’ is not legally possible. There are other possibilities (contributors agreement) but copyright assignment might be not legally possible – not only technically.

                                                              – Maciej Piechotka
                                                              Apr 28 ’13 at 17:24

                                                            • 1

                                                              @FaheemMitha, not by the GNU definition because the binary blobs most certainly are part of the kernel; they are distributed in the kernel source code, and built into the kernel binaries and required for them to function.

                                                              – psusi
                                                              Apr 28 ’13 at 18:43

                                                            • 8

                                                              Ahh, the proprietary drivers are another thing that GNU objects to. This was one of the reasons for GPLv3; to bar proprietary modules from being linked to free code, even at runtime, and why Linux chose to stay with GPLv2.

                                                              – psusi
                                                              Apr 28 ’13 at 19:59

                                                            • 1

                                                              @vonbrand, whether you agree with it or not is irrelevant; it is the position of the FSF and because of that, Linux could never be a GNU project.

                                                              – psusi
                                                              Apr 29 ’13 at 13:36

                                                            76

                                                            There is much documentation and discussion on this on the net.

                                                            The short answer that there are deep ideological differences between the GNU project and the Linux kernel projects, which gets in the way of a possible unification.

                                                            The focus of the FSF, the organization behind the GNU Project, is on ideological purity with respect to the idea of free software. This largely takes its lead from the views of the FSF/GNU founder, Richard Stallman. Additionally, as goldilocks has mentioned, the FSF is now mostly a political advocacy organization. For a long time now, the FSF has not put significant resources into the GNU Project, though they do provide support infrastructure.

                                                            The Linux kernel project has a much more pragmatic stance on software freedom, again to a large extent stemming from its founder, Linus Torvalds. The Linux kernel project is primarily a free software project, consisting of software developers specializing in kernel/OS development, and in no respect a political advocacy organization.

                                                            As specific examples of how these ideologies play out in practice, consider

                                                            1) That Stallman considers as unacceptable the fact that the Debian project “advertises” non-free software by maintaining the non-free portion of its software archive. This is ironic, since the Debian project has a focus on software freedom that is quite similar to the FSF, while not so ideologically rigid.

                                                            2) That the Linux kernel allows (non-free) binary kernel modules to be used with the kernel. While the kernel developers are not enthusiastic about this, they do tolerate it, but it is hard to imagine the FSF doing so.

                                                            It is also worth noting that Stallman’s attempt to name the operating systems based on the Linux kernel as GNU/Linux has probably not improved relations between the FSF and the Linux kernel community, though I have no specific data about this.

                                                            Aside from anything else, as goldilocks mentions, the FSF has various rules that a GNU project must conform to. This includes copyright assignment of all code to the FSF. This would all by itself be a deal breaker, since Linus Torvalds has never required such copyright assignment. Therefore, if the Linux kernel were to become part of the GNU project, all significant contributions to the Linux kernel would have to have their copyright assigned to the FSF. Given the age and size of the project, and the number of contributors, this is basically impossible. Far smaller and younger projects (e.g. Mercurial) have found software relicensing a daunting task.

                                                            Please note that this answer is in no way intended as criticism of either the FSF or the Linux kernel developers. Both sides have their own valid viewpoints. However, the reality of the situation is that they are to some extent incompatible viewpoints.

                                                            share|improve this answer

                                                            • 4

                                                              +1 I like this answer. Solid information on the issue. I appreciate your input.

                                                              – NlightNFotis
                                                              Apr 28 ’13 at 16:47

                                                            • 1

                                                              It’s worth noting that in many countries in Europe the ‘copyright assignment’ is not legally possible. There are other possibilities (contributors agreement) but copyright assignment might be not legally possible – not only technically.

                                                              – Maciej Piechotka
                                                              Apr 28 ’13 at 17:24

                                                            • 1

                                                              @FaheemMitha, not by the GNU definition because the binary blobs most certainly are part of the kernel; they are distributed in the kernel source code, and built into the kernel binaries and required for them to function.

                                                              – psusi
                                                              Apr 28 ’13 at 18:43

                                                            • 8

                                                              Ahh, the proprietary drivers are another thing that GNU objects to. This was one of the reasons for GPLv3; to bar proprietary modules from being linked to free code, even at runtime, and why Linux chose to stay with GPLv2.

                                                              – psusi
                                                              Apr 28 ’13 at 19:59

                                                            • 1

                                                              @vonbrand, whether you agree with it or not is irrelevant; it is the position of the FSF and because of that, Linux could never be a GNU project.

                                                              – psusi
                                                              Apr 29 ’13 at 13:36

                                                            76

                                                            76

                                                            76

                                                            There is much documentation and discussion on this on the net.

                                                            The short answer that there are deep ideological differences between the GNU project and the Linux kernel projects, which gets in the way of a possible unification.

                                                            The focus of the FSF, the organization behind the GNU Project, is on ideological purity with respect to the idea of free software. This largely takes its lead from the views of the FSF/GNU founder, Richard Stallman. Additionally, as goldilocks has mentioned, the FSF is now mostly a political advocacy organization. For a long time now, the FSF has not put significant resources into the GNU Project, though they do provide support infrastructure.

                                                            The Linux kernel project has a much more pragmatic stance on software freedom, again to a large extent stemming from its founder, Linus Torvalds. The Linux kernel project is primarily a free software project, consisting of software developers specializing in kernel/OS development, and in no respect a political advocacy organization.

                                                            As specific examples of how these ideologies play out in practice, consider

                                                            1) That Stallman considers as unacceptable the fact that the Debian project “advertises” non-free software by maintaining the non-free portion of its software archive. This is ironic, since the Debian project has a focus on software freedom that is quite similar to the FSF, while not so ideologically rigid.

                                                            2) That the Linux kernel allows (non-free) binary kernel modules to be used with the kernel. While the kernel developers are not enthusiastic about this, they do tolerate it, but it is hard to imagine the FSF doing so.

                                                            It is also worth noting that Stallman’s attempt to name the operating systems based on the Linux kernel as GNU/Linux has probably not improved relations between the FSF and the Linux kernel community, though I have no specific data about this.

                                                            Aside from anything else, as goldilocks mentions, the FSF has various rules that a GNU project must conform to. This includes copyright assignment of all code to the FSF. This would all by itself be a deal breaker, since Linus Torvalds has never required such copyright assignment. Therefore, if the Linux kernel were to become part of the GNU project, all significant contributions to the Linux kernel would have to have their copyright assigned to the FSF. Given the age and size of the project, and the number of contributors, this is basically impossible. Far smaller and younger projects (e.g. Mercurial) have found software relicensing a daunting task.

                                                            Please note that this answer is in no way intended as criticism of either the FSF or the Linux kernel developers. Both sides have their own valid viewpoints. However, the reality of the situation is that they are to some extent incompatible viewpoints.

                                                            share|improve this answer

                                                            There is much documentation and discussion on this on the net.

                                                            The short answer that there are deep ideological differences between the GNU project and the Linux kernel projects, which gets in the way of a possible unification.

                                                            The focus of the FSF, the organization behind the GNU Project, is on ideological purity with respect to the idea of free software. This largely takes its lead from the views of the FSF/GNU founder, Richard Stallman. Additionally, as goldilocks has mentioned, the FSF is now mostly a political advocacy organization. For a long time now, the FSF has not put significant resources into the GNU Project, though they do provide support infrastructure.

                                                            The Linux kernel project has a much more pragmatic stance on software freedom, again to a large extent stemming from its founder, Linus Torvalds. The Linux kernel project is primarily a free software project, consisting of software developers specializing in kernel/OS development, and in no respect a political advocacy organization.

                                                            As specific examples of how these ideologies play out in practice, consider

                                                            1) That Stallman considers as unacceptable the fact that the Debian project “advertises” non-free software by maintaining the non-free portion of its software archive. This is ironic, since the Debian project has a focus on software freedom that is quite similar to the FSF, while not so ideologically rigid.

                                                            2) That the Linux kernel allows (non-free) binary kernel modules to be used with the kernel. While the kernel developers are not enthusiastic about this, they do tolerate it, but it is hard to imagine the FSF doing so.

                                                            It is also worth noting that Stallman’s attempt to name the operating systems based on the Linux kernel as GNU/Linux has probably not improved relations between the FSF and the Linux kernel community, though I have no specific data about this.

                                                            Aside from anything else, as goldilocks mentions, the FSF has various rules that a GNU project must conform to. This includes copyright assignment of all code to the FSF. This would all by itself be a deal breaker, since Linus Torvalds has never required such copyright assignment. Therefore, if the Linux kernel were to become part of the GNU project, all significant contributions to the Linux kernel would have to have their copyright assigned to the FSF. Given the age and size of the project, and the number of contributors, this is basically impossible. Far smaller and younger projects (e.g. Mercurial) have found software relicensing a daunting task.

                                                            Please note that this answer is in no way intended as criticism of either the FSF or the Linux kernel developers. Both sides have their own valid viewpoints. However, the reality of the situation is that they are to some extent incompatible viewpoints.

                                                            share|improve this answer

                                                            share|improve this answer

                                                            share|improve this answer

                                                            edited Jun 28 ’15 at 5:37

                                                            answered Apr 28 ’13 at 16:45

                                                            Faheem MithaFaheem Mitha

                                                            23k1881136

                                                            23k1881136

                                                            • 4

                                                              +1 I like this answer. Solid information on the issue. I appreciate your input.

                                                              – NlightNFotis
                                                              Apr 28 ’13 at 16:47

                                                            • 1

                                                              It’s worth noting that in many countries in Europe the ‘copyright assignment’ is not legally possible. There are other possibilities (contributors agreement) but copyright assignment might be not legally possible – not only technically.

                                                              – Maciej Piechotka
                                                              Apr 28 ’13 at 17:24

                                                            • 1

                                                              @FaheemMitha, not by the GNU definition because the binary blobs most certainly are part of the kernel; they are distributed in the kernel source code, and built into the kernel binaries and required for them to function.

                                                              – psusi
                                                              Apr 28 ’13 at 18:43

                                                            • 8

                                                              Ahh, the proprietary drivers are another thing that GNU objects to. This was one of the reasons for GPLv3; to bar proprietary modules from being linked to free code, even at runtime, and why Linux chose to stay with GPLv2.

                                                              – psusi
                                                              Apr 28 ’13 at 19:59

                                                            • 1

                                                              @vonbrand, whether you agree with it or not is irrelevant; it is the position of the FSF and because of that, Linux could never be a GNU project.

                                                              – psusi
                                                              Apr 29 ’13 at 13:36

                                                            • 4

                                                              +1 I like this answer. Solid information on the issue. I appreciate your input.

                                                              – NlightNFotis
                                                              Apr 28 ’13 at 16:47

                                                            • 1

                                                              It’s worth noting that in many countries in Europe the ‘copyright assignment’ is not legally possible. There are other possibilities (contributors agreement) but copyright assignment might be not legally possible – not only technically.

                                                              – Maciej Piechotka
                                                              Apr 28 ’13 at 17:24

                                                            • 1

                                                              @FaheemMitha, not by the GNU definition because the binary blobs most certainly are part of the kernel; they are distributed in the kernel source code, and built into the kernel binaries and required for them to function.

                                                              – psusi
                                                              Apr 28 ’13 at 18:43

                                                            • 8

                                                              Ahh, the proprietary drivers are another thing that GNU objects to. This was one of the reasons for GPLv3; to bar proprietary modules from being linked to free code, even at runtime, and why Linux chose to stay with GPLv2.

                                                              – psusi
                                                              Apr 28 ’13 at 19:59

                                                            • 1

                                                              @vonbrand, whether you agree with it or not is irrelevant; it is the position of the FSF and because of that, Linux could never be a GNU project.

                                                              – psusi
                                                              Apr 29 ’13 at 13:36

                                                            4

                                                            4

                                                            +1 I like this answer. Solid information on the issue. I appreciate your input.

                                                            – NlightNFotis
                                                            Apr 28 ’13 at 16:47

                                                            +1 I like this answer. Solid information on the issue. I appreciate your input.

                                                            – NlightNFotis
                                                            Apr 28 ’13 at 16:47

                                                            1

                                                            1

                                                            It’s worth noting that in many countries in Europe the ‘copyright assignment’ is not legally possible. There are other possibilities (contributors agreement) but copyright assignment might be not legally possible – not only technically.

                                                            – Maciej Piechotka
                                                            Apr 28 ’13 at 17:24

                                                            It’s worth noting that in many countries in Europe the ‘copyright assignment’ is not legally possible. There are other possibilities (contributors agreement) but copyright assignment might be not legally possible – not only technically.

                                                            – Maciej Piechotka
                                                            Apr 28 ’13 at 17:24

                                                            1

                                                            1

                                                            @FaheemMitha, not by the GNU definition because the binary blobs most certainly are part of the kernel; they are distributed in the kernel source code, and built into the kernel binaries and required for them to function.

                                                            – psusi
                                                            Apr 28 ’13 at 18:43

                                                            @FaheemMitha, not by the GNU definition because the binary blobs most certainly are part of the kernel; they are distributed in the kernel source code, and built into the kernel binaries and required for them to function.

                                                            – psusi
                                                            Apr 28 ’13 at 18:43

                                                            8

                                                            8

                                                            Ahh, the proprietary drivers are another thing that GNU objects to. This was one of the reasons for GPLv3; to bar proprietary modules from being linked to free code, even at runtime, and why Linux chose to stay with GPLv2.

                                                            – psusi
                                                            Apr 28 ’13 at 19:59

                                                            Ahh, the proprietary drivers are another thing that GNU objects to. This was one of the reasons for GPLv3; to bar proprietary modules from being linked to free code, even at runtime, and why Linux chose to stay with GPLv2.

                                                            – psusi
                                                            Apr 28 ’13 at 19:59

                                                            1

                                                            1

                                                            @vonbrand, whether you agree with it or not is irrelevant; it is the position of the FSF and because of that, Linux could never be a GNU project.

                                                            – psusi
                                                            Apr 29 ’13 at 13:36

                                                            @vonbrand, whether you agree with it or not is irrelevant; it is the position of the FSF and because of that, Linux could never be a GNU project.

                                                            – psusi
                                                            Apr 29 ’13 at 13:36

                                                            34

                                                            I am quoting a comment by Richard Stallman, regarding the decision to roll with the Hurd rather than Linux.

                                                            People sometimes ask, “Why did the FSF develop a new free kernel
                                                            instead of using Linux?” It’s a reasonable question. The answer,
                                                            briefly, is that that is not the question we faced.

                                                            When we started developing the Hurd in 1990, the question facing us
                                                            was, “How can we get a free kernel for the GNU system?” There was no
                                                            free Unix-like kernel then, and we knew of no other plan to write one.
                                                            The only way we could expect to have a free kernel was to write it
                                                            ourselves. So we started.

                                                            We heard about Linux after its release. At that time, the question
                                                            facing us was, “Should we cancel the Hurd project and use Linux
                                                            instead?”

                                                            We heard that Linux was not at all portable (this may not be true
                                                            today, but that’s what we heard then). And we heard that Linux was
                                                            architecturally on a par with the Unix kernel; our work was leading to
                                                            something much more powerful.

                                                            Given the years of work we had already put into the Hurd, we decided
                                                            to finish it rather than throw them away.

                                                            If we did face the question that people ask—if Linux were already
                                                            available, and we were considering whether to start writing another
                                                            kernel—we would not do it. Instead we would choose another project,
                                                            something to do a job that no existing free software can do.

                                                            But we did start the Hurd, back then, and now we have made it work. We
                                                            hope its superior architecture will make free operating systems more
                                                            powerful.

                                                            share|improve this answer

                                                            • 6

                                                              Despite the fantastic answers provided to the question already, I will select this answer as the canonical one to the question because it demonstrates the rationale behind choice of sticking with the Hurd, straight from the creator of the GNU Project, Richard Stallman.

                                                              – NlightNFotis
                                                              Apr 30 ’13 at 23:18

                                                            • 9

                                                              Note “this may not be true today” – RMS’ opinion of Linux seems to be based on hearsay, not knowledge.

                                                              – Martin Schröder
                                                              May 1 ’13 at 13:27

                                                            • 17

                                                              @Martin: (Late Reply, but:) When Torvalds first announced Linux, it was x86 specific, with zero plans to make it portable. In the intial thread Linus flat out said “I’d say that porting is impossible”. Thus, rms had no reason to originally believe that Linux would grow into what it has today. Evidence from the mouth of the project leader is hardly hearsay.

                                                              – Kevin Cathcart
                                                              Aug 16 ’13 at 21:33

                                                            • @KevinCathcart: RMS/FSF should have studied the code themself instead of relying on others (“we heard”).

                                                              – Martin Schröder
                                                              Aug 17 ’13 at 7:22

                                                            • 19

                                                              @MartinSchröder: Why study the code when the Project Leader explicitly said it would not be portable? Anyway, Linux was announced in 1991. It took until April of 1994 (release 1.1.45) before Linux even added the folders for architecture ports. It would take longer before any ports were practical. If the FSF made their decision to continue the Hurd in 1992 or 1993, looking at the code would only have reinforced that the code was non-portable.

                                                              – Kevin Cathcart
                                                              Aug 19 ’13 at 16:53

                                                            34

                                                            I am quoting a comment by Richard Stallman, regarding the decision to roll with the Hurd rather than Linux.

                                                            People sometimes ask, “Why did the FSF develop a new free kernel
                                                            instead of using Linux?” It’s a reasonable question. The answer,
                                                            briefly, is that that is not the question we faced.

                                                            When we started developing the Hurd in 1990, the question facing us
                                                            was, “How can we get a free kernel for the GNU system?” There was no
                                                            free Unix-like kernel then, and we knew of no other plan to write one.
                                                            The only way we could expect to have a free kernel was to write it
                                                            ourselves. So we started.

                                                            We heard about Linux after its release. At that time, the question
                                                            facing us was, “Should we cancel the Hurd project and use Linux
                                                            instead?”

                                                            We heard that Linux was not at all portable (this may not be true
                                                            today, but that’s what we heard then). And we heard that Linux was
                                                            architecturally on a par with the Unix kernel; our work was leading to
                                                            something much more powerful.

                                                            Given the years of work we had already put into the Hurd, we decided
                                                            to finish it rather than throw them away.

                                                            If we did face the question that people ask—if Linux were already
                                                            available, and we were considering whether to start writing another
                                                            kernel—we would not do it. Instead we would choose another project,
                                                            something to do a job that no existing free software can do.

                                                            But we did start the Hurd, back then, and now we have made it work. We
                                                            hope its superior architecture will make free operating systems more
                                                            powerful.

                                                            share|improve this answer

                                                            • 6

                                                              Despite the fantastic answers provided to the question already, I will select this answer as the canonical one to the question because it demonstrates the rationale behind choice of sticking with the Hurd, straight from the creator of the GNU Project, Richard Stallman.

                                                              – NlightNFotis
                                                              Apr 30 ’13 at 23:18

                                                            • 9

                                                              Note “this may not be true today” – RMS’ opinion of Linux seems to be based on hearsay, not knowledge.

                                                              – Martin Schröder
                                                              May 1 ’13 at 13:27

                                                            • 17

                                                              @Martin: (Late Reply, but:) When Torvalds first announced Linux, it was x86 specific, with zero plans to make it portable. In the intial thread Linus flat out said “I’d say that porting is impossible”. Thus, rms had no reason to originally believe that Linux would grow into what it has today. Evidence from the mouth of the project leader is hardly hearsay.

                                                              – Kevin Cathcart
                                                              Aug 16 ’13 at 21:33

                                                            • @KevinCathcart: RMS/FSF should have studied the code themself instead of relying on others (“we heard”).

                                                              – Martin Schröder
                                                              Aug 17 ’13 at 7:22

                                                            • 19

                                                              @MartinSchröder: Why study the code when the Project Leader explicitly said it would not be portable? Anyway, Linux was announced in 1991. It took until April of 1994 (release 1.1.45) before Linux even added the folders for architecture ports. It would take longer before any ports were practical. If the FSF made their decision to continue the Hurd in 1992 or 1993, looking at the code would only have reinforced that the code was non-portable.

                                                              – Kevin Cathcart
                                                              Aug 19 ’13 at 16:53

                                                            34

                                                            34

                                                            34

                                                            I am quoting a comment by Richard Stallman, regarding the decision to roll with the Hurd rather than Linux.

                                                            People sometimes ask, “Why did the FSF develop a new free kernel
                                                            instead of using Linux?” It’s a reasonable question. The answer,
                                                            briefly, is that that is not the question we faced.

                                                            When we started developing the Hurd in 1990, the question facing us
                                                            was, “How can we get a free kernel for the GNU system?” There was no
                                                            free Unix-like kernel then, and we knew of no other plan to write one.
                                                            The only way we could expect to have a free kernel was to write it
                                                            ourselves. So we started.

                                                            We heard about Linux after its release. At that time, the question
                                                            facing us was, “Should we cancel the Hurd project and use Linux
                                                            instead?”

                                                            We heard that Linux was not at all portable (this may not be true
                                                            today, but that’s what we heard then). And we heard that Linux was
                                                            architecturally on a par with the Unix kernel; our work was leading to
                                                            something much more powerful.

                                                            Given the years of work we had already put into the Hurd, we decided
                                                            to finish it rather than throw them away.

                                                            If we did face the question that people ask—if Linux were already
                                                            available, and we were considering whether to start writing another
                                                            kernel—we would not do it. Instead we would choose another project,
                                                            something to do a job that no existing free software can do.

                                                            But we did start the Hurd, back then, and now we have made it work. We
                                                            hope its superior architecture will make free operating systems more
                                                            powerful.

                                                            share|improve this answer

                                                            I am quoting a comment by Richard Stallman, regarding the decision to roll with the Hurd rather than Linux.

                                                            People sometimes ask, “Why did the FSF develop a new free kernel
                                                            instead of using Linux?” It’s a reasonable question. The answer,
                                                            briefly, is that that is not the question we faced.

                                                            When we started developing the Hurd in 1990, the question facing us
                                                            was, “How can we get a free kernel for the GNU system?” There was no
                                                            free Unix-like kernel then, and we knew of no other plan to write one.
                                                            The only way we could expect to have a free kernel was to write it
                                                            ourselves. So we started.

                                                            We heard about Linux after its release. At that time, the question
                                                            facing us was, “Should we cancel the Hurd project and use Linux
                                                            instead?”

                                                            We heard that Linux was not at all portable (this may not be true
                                                            today, but that’s what we heard then). And we heard that Linux was
                                                            architecturally on a par with the Unix kernel; our work was leading to
                                                            something much more powerful.

                                                            Given the years of work we had already put into the Hurd, we decided
                                                            to finish it rather than throw them away.

                                                            If we did face the question that people ask—if Linux were already
                                                            available, and we were considering whether to start writing another
                                                            kernel—we would not do it. Instead we would choose another project,
                                                            something to do a job that no existing free software can do.

                                                            But we did start the Hurd, back then, and now we have made it work. We
                                                            hope its superior architecture will make free operating systems more
                                                            powerful.

                                                            share|improve this answer

                                                            share|improve this answer

                                                            share|improve this answer

                                                            answered Apr 30 ’13 at 23:14

                                                            NlightNFotisNlightNFotis

                                                            4,58252437

                                                            4,58252437

                                                            • 6

                                                              Despite the fantastic answers provided to the question already, I will select this answer as the canonical one to the question because it demonstrates the rationale behind choice of sticking with the Hurd, straight from the creator of the GNU Project, Richard Stallman.

                                                              – NlightNFotis
                                                              Apr 30 ’13 at 23:18

                                                            • 9

                                                              Note “this may not be true today” – RMS’ opinion of Linux seems to be based on hearsay, not knowledge.

                                                              – Martin Schröder
                                                              May 1 ’13 at 13:27

                                                            • 17

                                                              @Martin: (Late Reply, but:) When Torvalds first announced Linux, it was x86 specific, with zero plans to make it portable. In the intial thread Linus flat out said “I’d say that porting is impossible”. Thus, rms had no reason to originally believe that Linux would grow into what it has today. Evidence from the mouth of the project leader is hardly hearsay.

                                                              – Kevin Cathcart
                                                              Aug 16 ’13 at 21:33

                                                            • @KevinCathcart: RMS/FSF should have studied the code themself instead of relying on others (“we heard”).

                                                              – Martin Schröder
                                                              Aug 17 ’13 at 7:22

                                                            • 19

                                                              @MartinSchröder: Why study the code when the Project Leader explicitly said it would not be portable? Anyway, Linux was announced in 1991. It took until April of 1994 (release 1.1.45) before Linux even added the folders for architecture ports. It would take longer before any ports were practical. If the FSF made their decision to continue the Hurd in 1992 or 1993, looking at the code would only have reinforced that the code was non-portable.

                                                              – Kevin Cathcart
                                                              Aug 19 ’13 at 16:53

                                                            • 6

                                                              Despite the fantastic answers provided to the question already, I will select this answer as the canonical one to the question because it demonstrates the rationale behind choice of sticking with the Hurd, straight from the creator of the GNU Project, Richard Stallman.

                                                              – NlightNFotis
                                                              Apr 30 ’13 at 23:18

                                                            • 9

                                                              Note “this may not be true today” – RMS’ opinion of Linux seems to be based on hearsay, not knowledge.

                                                              – Martin Schröder
                                                              May 1 ’13 at 13:27

                                                            • 17

                                                              @Martin: (Late Reply, but:) When Torvalds first announced Linux, it was x86 specific, with zero plans to make it portable. In the intial thread Linus flat out said “I’d say that porting is impossible”. Thus, rms had no reason to originally believe that Linux would grow into what it has today. Evidence from the mouth of the project leader is hardly hearsay.

                                                              – Kevin Cathcart
                                                              Aug 16 ’13 at 21:33

                                                            • @KevinCathcart: RMS/FSF should have studied the code themself instead of relying on others (“we heard”).

                                                              – Martin Schröder
                                                              Aug 17 ’13 at 7:22

                                                            • 19

                                                              @MartinSchröder: Why study the code when the Project Leader explicitly said it would not be portable? Anyway, Linux was announced in 1991. It took until April of 1994 (release 1.1.45) before Linux even added the folders for architecture ports. It would take longer before any ports were practical. If the FSF made their decision to continue the Hurd in 1992 or 1993, looking at the code would only have reinforced that the code was non-portable.

                                                              – Kevin Cathcart
                                                              Aug 19 ’13 at 16:53

                                                            6

                                                            6

                                                            Despite the fantastic answers provided to the question already, I will select this answer as the canonical one to the question because it demonstrates the rationale behind choice of sticking with the Hurd, straight from the creator of the GNU Project, Richard Stallman.

                                                            – NlightNFotis
                                                            Apr 30 ’13 at 23:18

                                                            Despite the fantastic answers provided to the question already, I will select this answer as the canonical one to the question because it demonstrates the rationale behind choice of sticking with the Hurd, straight from the creator of the GNU Project, Richard Stallman.

                                                            – NlightNFotis
                                                            Apr 30 ’13 at 23:18

                                                            9

                                                            9

                                                            Note “this may not be true today” – RMS’ opinion of Linux seems to be based on hearsay, not knowledge.

                                                            – Martin Schröder
                                                            May 1 ’13 at 13:27

                                                            Note “this may not be true today” – RMS’ opinion of Linux seems to be based on hearsay, not knowledge.

                                                            – Martin Schröder
                                                            May 1 ’13 at 13:27

                                                            17

                                                            17

                                                            @Martin: (Late Reply, but:) When Torvalds first announced Linux, it was x86 specific, with zero plans to make it portable. In the intial thread Linus flat out said “I’d say that porting is impossible”. Thus, rms had no reason to originally believe that Linux would grow into what it has today. Evidence from the mouth of the project leader is hardly hearsay.

                                                            – Kevin Cathcart
                                                            Aug 16 ’13 at 21:33

                                                            @Martin: (Late Reply, but:) When Torvalds first announced Linux, it was x86 specific, with zero plans to make it portable. In the intial thread Linus flat out said “I’d say that porting is impossible”. Thus, rms had no reason to originally believe that Linux would grow into what it has today. Evidence from the mouth of the project leader is hardly hearsay.

                                                            – Kevin Cathcart
                                                            Aug 16 ’13 at 21:33

                                                            @KevinCathcart: RMS/FSF should have studied the code themself instead of relying on others (“we heard”).

                                                            – Martin Schröder
                                                            Aug 17 ’13 at 7:22

                                                            @KevinCathcart: RMS/FSF should have studied the code themself instead of relying on others (“we heard”).

                                                            – Martin Schröder
                                                            Aug 17 ’13 at 7:22

                                                            19

                                                            19

                                                            @MartinSchröder: Why study the code when the Project Leader explicitly said it would not be portable? Anyway, Linux was announced in 1991. It took until April of 1994 (release 1.1.45) before Linux even added the folders for architecture ports. It would take longer before any ports were practical. If the FSF made their decision to continue the Hurd in 1992 or 1993, looking at the code would only have reinforced that the code was non-portable.

                                                            – Kevin Cathcart
                                                            Aug 19 ’13 at 16:53

                                                            @MartinSchröder: Why study the code when the Project Leader explicitly said it would not be portable? Anyway, Linux was announced in 1991. It took until April of 1994 (release 1.1.45) before Linux even added the folders for architecture ports. It would take longer before any ports were practical. If the FSF made their decision to continue the Hurd in 1992 or 1993, looking at the code would only have reinforced that the code was non-portable.

                                                            – Kevin Cathcart
                                                            Aug 19 ’13 at 16:53

                                                            4

                                                            I’m just adding my 2 cent here, I think that what it’s been discussed at this point makes a lot of sense but there is one major aspect that I think can really polarize the GNU foundation and it’s the fact that Linux is becoming more and more a place where large corporates are investing real money and time, the idea that linux is kind of an home-made project it’s not true, not even a bit, maybe there is some random guy trying to get attention on the scene while giving a patch away, but for the large part linux it’s a job for corporations.

                                                            share|improve this answer

                                                            • 1

                                                              I don’t think the FSF has a problem with corporate support of software projects. Their main focus is on the principles of free software.

                                                              – Faheem Mitha
                                                              Jun 14 ’13 at 9:22

                                                            • Corporate dominance was a big concern the GNU GPL was intended to address. Permissively licensed software was actually normal procedure at both MIT and Berkeley, but once code was commercialized it was promptly closed. So for example, I could checkout the Linux source today and all the commercially developed improvements will benefit my potential project. Or my next small personal project may use just a couple blocks, the point is that any released improvements benefit whoever works with the code next.

                                                              – J. M. Becker
                                                              Jan 25 ’14 at 1:24

                                                            4

                                                            I’m just adding my 2 cent here, I think that what it’s been discussed at this point makes a lot of sense but there is one major aspect that I think can really polarize the GNU foundation and it’s the fact that Linux is becoming more and more a place where large corporates are investing real money and time, the idea that linux is kind of an home-made project it’s not true, not even a bit, maybe there is some random guy trying to get attention on the scene while giving a patch away, but for the large part linux it’s a job for corporations.

                                                            share|improve this answer

                                                            • 1

                                                              I don’t think the FSF has a problem with corporate support of software projects. Their main focus is on the principles of free software.

                                                              – Faheem Mitha
                                                              Jun 14 ’13 at 9:22

                                                            • Corporate dominance was a big concern the GNU GPL was intended to address. Permissively licensed software was actually normal procedure at both MIT and Berkeley, but once code was commercialized it was promptly closed. So for example, I could checkout the Linux source today and all the commercially developed improvements will benefit my potential project. Or my next small personal project may use just a couple blocks, the point is that any released improvements benefit whoever works with the code next.

                                                              – J. M. Becker
                                                              Jan 25 ’14 at 1:24

                                                            4

                                                            4

                                                            4

                                                            I’m just adding my 2 cent here, I think that what it’s been discussed at this point makes a lot of sense but there is one major aspect that I think can really polarize the GNU foundation and it’s the fact that Linux is becoming more and more a place where large corporates are investing real money and time, the idea that linux is kind of an home-made project it’s not true, not even a bit, maybe there is some random guy trying to get attention on the scene while giving a patch away, but for the large part linux it’s a job for corporations.

                                                            share|improve this answer

                                                            I’m just adding my 2 cent here, I think that what it’s been discussed at this point makes a lot of sense but there is one major aspect that I think can really polarize the GNU foundation and it’s the fact that Linux is becoming more and more a place where large corporates are investing real money and time, the idea that linux is kind of an home-made project it’s not true, not even a bit, maybe there is some random guy trying to get attention on the scene while giving a patch away, but for the large part linux it’s a job for corporations.

                                                            share|improve this answer

                                                            share|improve this answer

                                                            share|improve this answer

                                                            answered May 27 ’13 at 8:47

                                                            user2384250user2384250

                                                            30147

                                                            30147

                                                            • 1

                                                              I don’t think the FSF has a problem with corporate support of software projects. Their main focus is on the principles of free software.

                                                              – Faheem Mitha
                                                              Jun 14 ’13 at 9:22

                                                            • Corporate dominance was a big concern the GNU GPL was intended to address. Permissively licensed software was actually normal procedure at both MIT and Berkeley, but once code was commercialized it was promptly closed. So for example, I could checkout the Linux source today and all the commercially developed improvements will benefit my potential project. Or my next small personal project may use just a couple blocks, the point is that any released improvements benefit whoever works with the code next.

                                                              – J. M. Becker
                                                              Jan 25 ’14 at 1:24

                                                            • 1

                                                              I don’t think the FSF has a problem with corporate support of software projects. Their main focus is on the principles of free software.

                                                              – Faheem Mitha
                                                              Jun 14 ’13 at 9:22

                                                            • Corporate dominance was a big concern the GNU GPL was intended to address. Permissively licensed software was actually normal procedure at both MIT and Berkeley, but once code was commercialized it was promptly closed. So for example, I could checkout the Linux source today and all the commercially developed improvements will benefit my potential project. Or my next small personal project may use just a couple blocks, the point is that any released improvements benefit whoever works with the code next.

                                                              – J. M. Becker
                                                              Jan 25 ’14 at 1:24

                                                            1

                                                            1

                                                            I don’t think the FSF has a problem with corporate support of software projects. Their main focus is on the principles of free software.

                                                            – Faheem Mitha
                                                            Jun 14 ’13 at 9:22

                                                            I don’t think the FSF has a problem with corporate support of software projects. Their main focus is on the principles of free software.

                                                            – Faheem Mitha
                                                            Jun 14 ’13 at 9:22

                                                            Corporate dominance was a big concern the GNU GPL was intended to address. Permissively licensed software was actually normal procedure at both MIT and Berkeley, but once code was commercialized it was promptly closed. So for example, I could checkout the Linux source today and all the commercially developed improvements will benefit my potential project. Or my next small personal project may use just a couple blocks, the point is that any released improvements benefit whoever works with the code next.

                                                            – J. M. Becker
                                                            Jan 25 ’14 at 1:24

                                                            Corporate dominance was a big concern the GNU GPL was intended to address. Permissively licensed software was actually normal procedure at both MIT and Berkeley, but once code was commercialized it was promptly closed. So for example, I could checkout the Linux source today and all the commercially developed improvements will benefit my potential project. Or my next small personal project may use just a couple blocks, the point is that any released improvements benefit whoever works with the code next.

                                                            – J. M. Becker
                                                            Jan 25 ’14 at 1:24

                                                            1

                                                            Another explanation found on the FAQ of gnu.org:

                                                            Making the GNU Hurd work well enough to compete with Linux would be a
                                                            big job, and it’s not clearly necessary. The only thing ethically
                                                            wrong with Linux as a kernel is its inclusion of firmware “blobs”; the
                                                            best fix for that problem is developing free replacement for the
                                                            blobs.

                                                            share|improve this answer

                                                              1

                                                              Another explanation found on the FAQ of gnu.org:

                                                              Making the GNU Hurd work well enough to compete with Linux would be a
                                                              big job, and it’s not clearly necessary. The only thing ethically
                                                              wrong with Linux as a kernel is its inclusion of firmware “blobs”; the
                                                              best fix for that problem is developing free replacement for the
                                                              blobs.

                                                              share|improve this answer

                                                                1

                                                                1

                                                                1

                                                                Another explanation found on the FAQ of gnu.org:

                                                                Making the GNU Hurd work well enough to compete with Linux would be a
                                                                big job, and it’s not clearly necessary. The only thing ethically
                                                                wrong with Linux as a kernel is its inclusion of firmware “blobs”; the
                                                                best fix for that problem is developing free replacement for the
                                                                blobs.

                                                                share|improve this answer

                                                                Another explanation found on the FAQ of gnu.org:

                                                                Making the GNU Hurd work well enough to compete with Linux would be a
                                                                big job, and it’s not clearly necessary. The only thing ethically
                                                                wrong with Linux as a kernel is its inclusion of firmware “blobs”; the
                                                                best fix for that problem is developing free replacement for the
                                                                blobs.

                                                                share|improve this answer

                                                                share|improve this answer

                                                                share|improve this answer

                                                                answered Jan 26 at 12:12

                                                                The QuarkThe Quark

                                                                113

                                                                113

                                                                    -6

                                                                    Linux can not be Unix, since Linux is not conforming to Posix.

                                                                    So even without political hassle Linux can not meet the design goal for Hurd.

                                                                    Cite:
                                                                    “The Hurd is the GNU project’s replacement for UNIX, a popular operating system kernel.”

                                                                    Astonishing, that there is a Debian/Hurd-Projekt. But that is possibly a different story…

                                                                    BTW: Windows (since NT/XP) is based on the MACH-kernel, too.

                                                                    share|improve this answer

                                                                    • 8

                                                                      If you are going to claim that Linux is not POSIX conformant, you’re going to have to back that up a bit. Including where the FSF says they require an absolutely 100% POSIX compliant kernel. By the way, Unix is not POSIX. Unix (trademarked) is a specific proprietary OS, so it goes without saying that no other OS can be that OS.

                                                                      – psusi
                                                                      Apr 29 ’13 at 13:40

                                                                    • 6

                                                                      Citation for the Windows kernel being based on MACH? Wikipedia says they share some design choices; but with MACH being the prototypical microkernel while the majority of Windows OS services run in the kernel not userland. The only major OSS component in the Windows kernel that I’m aware of was the network stack which used to be based on the BSD implementation; however it was ripped out and replaced with one that better interfaced with the rest of the os design several versions ago (IIRC in XP or 2k).

                                                                      – Dan Neely
                                                                      Apr 29 ’13 at 13:59

                                                                    • 14

                                                                      But GNU’s Not Unix, either.

                                                                      – Simon
                                                                      Apr 29 ’13 at 16:02

                                                                    • 6

                                                                      @Nils, the question you linked contradicts your position, rather than supports it.

                                                                      – psusi
                                                                      Apr 29 ’13 at 16:08

                                                                    • 8

                                                                      @Nils, the Mach nonsense is another bit of popular misconception. NT has nothing in common with mach. Its “subsystem servers” are no different than unix daemons, which do not make a microkernel. Originally the gui was implemented in user mode, and this had only a passing resemblance to a microkernel system ( though so is Xwindows, that does not make Linux a microkernel ), but this was scrapped in NT4 and moved to the kernel.

                                                                      – psusi
                                                                      Apr 29 ’13 at 16:20

                                                                    -6

                                                                    Linux can not be Unix, since Linux is not conforming to Posix.

                                                                    So even without political hassle Linux can not meet the design goal for Hurd.

                                                                    Cite:
                                                                    “The Hurd is the GNU project’s replacement for UNIX, a popular operating system kernel.”

                                                                    Astonishing, that there is a Debian/Hurd-Projekt. But that is possibly a different story…

                                                                    BTW: Windows (since NT/XP) is based on the MACH-kernel, too.

                                                                    share|improve this answer

                                                                    • 8

                                                                      If you are going to claim that Linux is not POSIX conformant, you’re going to have to back that up a bit. Including where the FSF says they require an absolutely 100% POSIX compliant kernel. By the way, Unix is not POSIX. Unix (trademarked) is a specific proprietary OS, so it goes without saying that no other OS can be that OS.

                                                                      – psusi
                                                                      Apr 29 ’13 at 13:40

                                                                    • 6

                                                                      Citation for the Windows kernel being based on MACH? Wikipedia says they share some design choices; but with MACH being the prototypical microkernel while the majority of Windows OS services run in the kernel not userland. The only major OSS component in the Windows kernel that I’m aware of was the network stack which used to be based on the BSD implementation; however it was ripped out and replaced with one that better interfaced with the rest of the os design several versions ago (IIRC in XP or 2k).

                                                                      – Dan Neely
                                                                      Apr 29 ’13 at 13:59

                                                                    • 14

                                                                      But GNU’s Not Unix, either.

                                                                      – Simon
                                                                      Apr 29 ’13 at 16:02

                                                                    • 6

                                                                      @Nils, the question you linked contradicts your position, rather than supports it.

                                                                      – psusi
                                                                      Apr 29 ’13 at 16:08

                                                                    • 8

                                                                      @Nils, the Mach nonsense is another bit of popular misconception. NT has nothing in common with mach. Its “subsystem servers” are no different than unix daemons, which do not make a microkernel. Originally the gui was implemented in user mode, and this had only a passing resemblance to a microkernel system ( though so is Xwindows, that does not make Linux a microkernel ), but this was scrapped in NT4 and moved to the kernel.

                                                                      – psusi
                                                                      Apr 29 ’13 at 16:20

                                                                    -6

                                                                    -6

                                                                    -6

                                                                    Linux can not be Unix, since Linux is not conforming to Posix.

                                                                    So even without political hassle Linux can not meet the design goal for Hurd.

                                                                    Cite:
                                                                    “The Hurd is the GNU project’s replacement for UNIX, a popular operating system kernel.”

                                                                    Astonishing, that there is a Debian/Hurd-Projekt. But that is possibly a different story…

                                                                    BTW: Windows (since NT/XP) is based on the MACH-kernel, too.

                                                                    share|improve this answer

                                                                    Linux can not be Unix, since Linux is not conforming to Posix.

                                                                    So even without political hassle Linux can not meet the design goal for Hurd.

                                                                    Cite:
                                                                    “The Hurd is the GNU project’s replacement for UNIX, a popular operating system kernel.”

                                                                    Astonishing, that there is a Debian/Hurd-Projekt. But that is possibly a different story…

                                                                    BTW: Windows (since NT/XP) is based on the MACH-kernel, too.

                                                                    share|improve this answer

                                                                    share|improve this answer

                                                                    share|improve this answer

                                                                    edited Apr 13 ’17 at 12:36

                                                                    Community

                                                                    1

                                                                    1

                                                                    answered Apr 29 ’13 at 13:10

                                                                    NilsNils

                                                                    12.6k73670

                                                                    12.6k73670

                                                                    • 8

                                                                      If you are going to claim that Linux is not POSIX conformant, you’re going to have to back that up a bit. Including where the FSF says they require an absolutely 100% POSIX compliant kernel. By the way, Unix is not POSIX. Unix (trademarked) is a specific proprietary OS, so it goes without saying that no other OS can be that OS.

                                                                      – psusi
                                                                      Apr 29 ’13 at 13:40

                                                                    • 6

                                                                      Citation for the Windows kernel being based on MACH? Wikipedia says they share some design choices; but with MACH being the prototypical microkernel while the majority of Windows OS services run in the kernel not userland. The only major OSS component in the Windows kernel that I’m aware of was the network stack which used to be based on the BSD implementation; however it was ripped out and replaced with one that better interfaced with the rest of the os design several versions ago (IIRC in XP or 2k).

                                                                      – Dan Neely
                                                                      Apr 29 ’13 at 13:59

                                                                    • 14

                                                                      But GNU’s Not Unix, either.

                                                                      – Simon
                                                                      Apr 29 ’13 at 16:02

                                                                    • 6

                                                                      @Nils, the question you linked contradicts your position, rather than supports it.

                                                                      – psusi
                                                                      Apr 29 ’13 at 16:08

                                                                    • 8

                                                                      @Nils, the Mach nonsense is another bit of popular misconception. NT has nothing in common with mach. Its “subsystem servers” are no different than unix daemons, which do not make a microkernel. Originally the gui was implemented in user mode, and this had only a passing resemblance to a microkernel system ( though so is Xwindows, that does not make Linux a microkernel ), but this was scrapped in NT4 and moved to the kernel.

                                                                      – psusi
                                                                      Apr 29 ’13 at 16:20

                                                                    • 8

                                                                      If you are going to claim that Linux is not POSIX conformant, you’re going to have to back that up a bit. Including where the FSF says they require an absolutely 100% POSIX compliant kernel. By the way, Unix is not POSIX. Unix (trademarked) is a specific proprietary OS, so it goes without saying that no other OS can be that OS.

                                                                      – psusi
                                                                      Apr 29 ’13 at 13:40

                                                                    • 6

                                                                      Citation for the Windows kernel being based on MACH? Wikipedia says they share some design choices; but with MACH being the prototypical microkernel while the majority of Windows OS services run in the kernel not userland. The only major OSS component in the Windows kernel that I’m aware of was the network stack which used to be based on the BSD implementation; however it was ripped out and replaced with one that better interfaced with the rest of the os design several versions ago (IIRC in XP or 2k).

                                                                      – Dan Neely
                                                                      Apr 29 ’13 at 13:59

                                                                    • 14

                                                                      But GNU’s Not Unix, either.

                                                                      – Simon
                                                                      Apr 29 ’13 at 16:02

                                                                    • 6

                                                                      @Nils, the question you linked contradicts your position, rather than supports it.

                                                                      – psusi
                                                                      Apr 29 ’13 at 16:08

                                                                    • 8

                                                                      @Nils, the Mach nonsense is another bit of popular misconception. NT has nothing in common with mach. Its “subsystem servers” are no different than unix daemons, which do not make a microkernel. Originally the gui was implemented in user mode, and this had only a passing resemblance to a microkernel system ( though so is Xwindows, that does not make Linux a microkernel ), but this was scrapped in NT4 and moved to the kernel.

                                                                      – psusi
                                                                      Apr 29 ’13 at 16:20

                                                                    8

                                                                    8

                                                                    If you are going to claim that Linux is not POSIX conformant, you’re going to have to back that up a bit. Including where the FSF says they require an absolutely 100% POSIX compliant kernel. By the way, Unix is not POSIX. Unix (trademarked) is a specific proprietary OS, so it goes without saying that no other OS can be that OS.

                                                                    – psusi
                                                                    Apr 29 ’13 at 13:40

                                                                    If you are going to claim that Linux is not POSIX conformant, you’re going to have to back that up a bit. Including where the FSF says they require an absolutely 100% POSIX compliant kernel. By the way, Unix is not POSIX. Unix (trademarked) is a specific proprietary OS, so it goes without saying that no other OS can be that OS.

                                                                    – psusi
                                                                    Apr 29 ’13 at 13:40

                                                                    6

                                                                    6

                                                                    Citation for the Windows kernel being based on MACH? Wikipedia says they share some design choices; but with MACH being the prototypical microkernel while the majority of Windows OS services run in the kernel not userland. The only major OSS component in the Windows kernel that I’m aware of was the network stack which used to be based on the BSD implementation; however it was ripped out and replaced with one that better interfaced with the rest of the os design several versions ago (IIRC in XP or 2k).

                                                                    – Dan Neely
                                                                    Apr 29 ’13 at 13:59

                                                                    Citation for the Windows kernel being based on MACH? Wikipedia says they share some design choices; but with MACH being the prototypical microkernel while the majority of Windows OS services run in the kernel not userland. The only major OSS component in the Windows kernel that I’m aware of was the network stack which used to be based on the BSD implementation; however it was ripped out and replaced with one that better interfaced with the rest of the os design several versions ago (IIRC in XP or 2k).

                                                                    – Dan Neely
                                                                    Apr 29 ’13 at 13:59

                                                                    14

                                                                    14

                                                                    But GNU’s Not Unix, either.

                                                                    – Simon
                                                                    Apr 29 ’13 at 16:02

                                                                    But GNU’s Not Unix, either.

                                                                    – Simon
                                                                    Apr 29 ’13 at 16:02

                                                                    6

                                                                    6

                                                                    @Nils, the question you linked contradicts your position, rather than supports it.

                                                                    – psusi
                                                                    Apr 29 ’13 at 16:08

                                                                    @Nils, the question you linked contradicts your position, rather than supports it.

                                                                    – psusi
                                                                    Apr 29 ’13 at 16:08

                                                                    8

                                                                    8

                                                                    @Nils, the Mach nonsense is another bit of popular misconception. NT has nothing in common with mach. Its “subsystem servers” are no different than unix daemons, which do not make a microkernel. Originally the gui was implemented in user mode, and this had only a passing resemblance to a microkernel system ( though so is Xwindows, that does not make Linux a microkernel ), but this was scrapped in NT4 and moved to the kernel.

                                                                    – psusi
                                                                    Apr 29 ’13 at 16:20

                                                                    @Nils, the Mach nonsense is another bit of popular misconception. NT has nothing in common with mach. Its “subsystem servers” are no different than unix daemons, which do not make a microkernel. Originally the gui was implemented in user mode, and this had only a passing resemblance to a microkernel system ( though so is Xwindows, that does not make Linux a microkernel ), but this was scrapped in NT4 and moved to the kernel.

                                                                    – psusi
                                                                    Apr 29 ’13 at 16:20

                                                                    draft saved
                                                                    draft discarded

                                                                    Thanks for contributing an answer to Unix & Linux Stack Exchange!

                                                                    • Please be sure to answer the question. Provide details and share your research!

                                                                    But avoid

                                                                    • Asking for help, clarification, or responding to other answers.
                                                                    • Making statements based on opinion; back them up with references or personal experience.

                                                                    To learn more, see our tips on writing great answers.

                                                                    draft saved

                                                                    draft discarded

                                                                    StackExchange.ready(
                                                                    function () {
                                                                    StackExchange.openid.initPostLogin(‘.new-post-login’, ‘https%3a%2f%2funix.stackexchange.com%2fquestions%2f73950%2fwhy-isnt-linux-embraced-as-the-official-gnu-kernel%23new-answer’, ‘question_page’);
                                                                    }
                                                                    );

                                                                    Post as a guest

                                                                    Required, but never shown

                                                                    Required, but never shown

                                                                    Required, but never shown

                                                                    Required, but never shown

                                                                    Required, but never shown

                                                                    Required, but never shown

                                                                    Required, but never shown

                                                                    Required, but never shown

                                                                    Required, but never shown

                                                                    How should we interpret the phrase “asynchronous requests” in cfq-iosched.txt?

                                                                    The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP

                                                                    0

                                                                    The old cfq-iosched.txt mentions “asynchronous” or “async” requests in several places.

                                                                    CFQ maintains the per process queue for the processes which request I/O
                                                                    operation(synchronous requests). In case of asynchronous requests, all the
                                                                    requests from all the processes are batched together according to their
                                                                    process’s I/O priority.

                                                                    How exactly should we understand the distinction in this doc, from a userspace point of view? I am unclear because there are several distinctions that are named sync/async:

                                                                    1. Normal read()/write() calls, v.s. Linux AIO (io_submit()/io_getevents).
                                                                    2. The O_SYNC flag, which can be set when you open() a file.

                                                                    (Note, as I understand it, the quote above about IO priority does not apply to simple buffered writes. IO priority has no effect on such requests.)

                                                                    share|improve this question

                                                                      0

                                                                      The old cfq-iosched.txt mentions “asynchronous” or “async” requests in several places.

                                                                      CFQ maintains the per process queue for the processes which request I/O
                                                                      operation(synchronous requests). In case of asynchronous requests, all the
                                                                      requests from all the processes are batched together according to their
                                                                      process’s I/O priority.

                                                                      How exactly should we understand the distinction in this doc, from a userspace point of view? I am unclear because there are several distinctions that are named sync/async:

                                                                      1. Normal read()/write() calls, v.s. Linux AIO (io_submit()/io_getevents).
                                                                      2. The O_SYNC flag, which can be set when you open() a file.

                                                                      (Note, as I understand it, the quote above about IO priority does not apply to simple buffered writes. IO priority has no effect on such requests.)

                                                                      share|improve this question

                                                                        0

                                                                        0

                                                                        0

                                                                        The old cfq-iosched.txt mentions “asynchronous” or “async” requests in several places.

                                                                        CFQ maintains the per process queue for the processes which request I/O
                                                                        operation(synchronous requests). In case of asynchronous requests, all the
                                                                        requests from all the processes are batched together according to their
                                                                        process’s I/O priority.

                                                                        How exactly should we understand the distinction in this doc, from a userspace point of view? I am unclear because there are several distinctions that are named sync/async:

                                                                        1. Normal read()/write() calls, v.s. Linux AIO (io_submit()/io_getevents).
                                                                        2. The O_SYNC flag, which can be set when you open() a file.

                                                                        (Note, as I understand it, the quote above about IO priority does not apply to simple buffered writes. IO priority has no effect on such requests.)

                                                                        share|improve this question

                                                                        The old cfq-iosched.txt mentions “asynchronous” or “async” requests in several places.

                                                                        CFQ maintains the per process queue for the processes which request I/O
                                                                        operation(synchronous requests). In case of asynchronous requests, all the
                                                                        requests from all the processes are batched together according to their
                                                                        process’s I/O priority.

                                                                        How exactly should we understand the distinction in this doc, from a userspace point of view? I am unclear because there are several distinctions that are named sync/async:

                                                                        1. Normal read()/write() calls, v.s. Linux AIO (io_submit()/io_getevents).
                                                                        2. The O_SYNC flag, which can be set when you open() a file.

                                                                        (Note, as I understand it, the quote above about IO priority does not apply to simple buffered writes. IO priority has no effect on such requests.)

                                                                        linux-kernel io

                                                                        share|improve this question

                                                                        share|improve this question

                                                                        share|improve this question

                                                                        share|improve this question

                                                                        edited Jan 26 at 14:45

                                                                        sourcejedi

                                                                        asked Jan 26 at 11:09

                                                                        sourcejedisourcejedi

                                                                        24.2k440107

                                                                        24.2k440107

                                                                            1 Answer
                                                                            1

                                                                            active

                                                                            oldest

                                                                            votes

                                                                            1

                                                                            The form of requests processed by the Linux IO schedulers, have various “hints” set on them. One of them is the “sync” hint.

                                                                            All IO is handled async in Linux. This is fine for background
                                                                            writes, but for reads or writes that someone waits for completion
                                                                            on, we want to notify the block layer and IO scheduler so that they
                                                                            know about it. That allows them to make better scheduling
                                                                            decisions. So when the below references ‘sync’ and ‘async’, it
                                                                            is referencing this priority hint.

                                                                            — include/linux/fs.h (2016-11-01)

                                                                            Read requests are always treated as synchronous.

                                                                            block: don’t use REQ_SYNC in the READ_SYNC definition (2016-11-01)

                                                                            Reads are synchronous per definition, don’t add another flag for it.

                                                                            Both O_DIRECT and O_SYNC writes are treated as synchronous.

                                                                            #define READ_SYNC       0
                                                                            #define WRITE_SYNC      (REQ_SYNC | REQ_NOIDLE)
                                                                            #define WRITE_ODIRECT   REQ_SYNC
                                                                            

                                                                            IO requests initiated by fsync() use the same hint as O_SYNC writes. Although if the IO request has already been initiated and fsync() must wait for the existing request, I see no mechanism to adjust the request.

                                                                            Re: trying to understand READ_META, READ_SYNC, WRITE_SYNC & co (2010)

                                                                            But that leaves the question why disabling the idling logical for
                                                                            data integrity ->writepage is fine? This gets called from ->fsync
                                                                            or O_SYNC writes and will have the same impact as O_DIRECT writes.

                                                                            We have never enabled idling for those. O_SYNC should get a nice
                                                                            boost too, it just needs to be benchmarked and tested and then
                                                                            there would be no reason not to add it.

                                                                            We’ve only started using any kind of sync tag last year in ->writepage
                                                                            in commit a64c8610bd3b
                                                                            “block_write_full_page: Use synchronous writes for WBC_SYNC_ALL
                                                                            writebacks”

                                                                            “disabling idling” is a different hint flag, which is a bit harder to explain. But the commit linked in the above quote confirms the use of the WRITE_SYNC hint for fsync().

                                                                            The code quoted above has since been moved or replaced, but the use of the “sync” hint should still be the same in 2018 as it was in 2016.

                                                                            So I don’t believe it really matters whether the requests are made using Linux AIO or not.

                                                                            (I notice AIO is only supported for O_DIRECT, therefore all AIO should be “synchronous” from the IO scheduler’s point of view :-). At least as of v4.20. The proposed new AIO interface supports buffered (non-O_DIRECT) IO. That will go through the same code above, so then the hint will still be set according to whether O_SYNC is used).

                                                                            share|improve this answer

                                                                              Your Answer

                                                                              StackExchange.ready(function() {
                                                                              var channelOptions = {
                                                                              tags: “”.split(” “),
                                                                              id: “106”
                                                                              };
                                                                              initTagRenderer(“”.split(” “), “”.split(” “), channelOptions);

                                                                              StackExchange.using(“externalEditor”, function() {
                                                                              // Have to fire editor after snippets, if snippets enabled
                                                                              if (StackExchange.settings.snippets.snippetsEnabled) {
                                                                              StackExchange.using(“snippets”, function() {
                                                                              createEditor();
                                                                              });
                                                                              }
                                                                              else {
                                                                              createEditor();
                                                                              }
                                                                              });

                                                                              function createEditor() {
                                                                              StackExchange.prepareEditor({
                                                                              heartbeatType: ‘answer’,
                                                                              autoActivateHeartbeat: false,
                                                                              convertImagesToLinks: false,
                                                                              noModals: true,
                                                                              showLowRepImageUploadWarning: true,
                                                                              reputationToPostImages: null,
                                                                              bindNavPrevention: true,
                                                                              postfix: “”,
                                                                              imageUploader: {
                                                                              brandingHtml: “Powered by u003ca class=”icon-imgur-white” href=”https://imgur.com/”u003eu003c/au003e”,
                                                                              contentPolicyHtml: “User contributions licensed under u003ca href=”https://creativecommons.org/licenses/by-sa/3.0/”u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href=”https://stackoverflow.com/legal/content-policy”u003e(content policy)u003c/au003e”,
                                                                              allowUrls: true
                                                                              },
                                                                              onDemand: true,
                                                                              discardSelector: “.discard-answer”
                                                                              ,immediatelyShowMarkdownHelp:true
                                                                              });

                                                                              }
                                                                              });

                                                                              draft saved
                                                                              draft discarded

                                                                              StackExchange.ready(
                                                                              function () {
                                                                              StackExchange.openid.initPostLogin(‘.new-post-login’, ‘https%3a%2f%2funix.stackexchange.com%2fquestions%2f496855%2fhow-should-we-interpret-the-phrase-asynchronous-requests-in-cfq-iosched-txt%23new-answer’, ‘question_page’);
                                                                              }
                                                                              );

                                                                              Post as a guest

                                                                              Required, but never shown

                                                                              1 Answer
                                                                              1

                                                                              active

                                                                              oldest

                                                                              votes

                                                                              1 Answer
                                                                              1

                                                                              active

                                                                              oldest

                                                                              votes

                                                                              active

                                                                              oldest

                                                                              votes

                                                                              active

                                                                              oldest

                                                                              votes

                                                                              1

                                                                              The form of requests processed by the Linux IO schedulers, have various “hints” set on them. One of them is the “sync” hint.

                                                                              All IO is handled async in Linux. This is fine for background
                                                                              writes, but for reads or writes that someone waits for completion
                                                                              on, we want to notify the block layer and IO scheduler so that they
                                                                              know about it. That allows them to make better scheduling
                                                                              decisions. So when the below references ‘sync’ and ‘async’, it
                                                                              is referencing this priority hint.

                                                                              — include/linux/fs.h (2016-11-01)

                                                                              Read requests are always treated as synchronous.

                                                                              block: don’t use REQ_SYNC in the READ_SYNC definition (2016-11-01)

                                                                              Reads are synchronous per definition, don’t add another flag for it.

                                                                              Both O_DIRECT and O_SYNC writes are treated as synchronous.

                                                                              #define READ_SYNC       0
                                                                              #define WRITE_SYNC      (REQ_SYNC | REQ_NOIDLE)
                                                                              #define WRITE_ODIRECT   REQ_SYNC
                                                                              

                                                                              IO requests initiated by fsync() use the same hint as O_SYNC writes. Although if the IO request has already been initiated and fsync() must wait for the existing request, I see no mechanism to adjust the request.

                                                                              Re: trying to understand READ_META, READ_SYNC, WRITE_SYNC & co (2010)

                                                                              But that leaves the question why disabling the idling logical for
                                                                              data integrity ->writepage is fine? This gets called from ->fsync
                                                                              or O_SYNC writes and will have the same impact as O_DIRECT writes.

                                                                              We have never enabled idling for those. O_SYNC should get a nice
                                                                              boost too, it just needs to be benchmarked and tested and then
                                                                              there would be no reason not to add it.

                                                                              We’ve only started using any kind of sync tag last year in ->writepage
                                                                              in commit a64c8610bd3b
                                                                              “block_write_full_page: Use synchronous writes for WBC_SYNC_ALL
                                                                              writebacks”

                                                                              “disabling idling” is a different hint flag, which is a bit harder to explain. But the commit linked in the above quote confirms the use of the WRITE_SYNC hint for fsync().

                                                                              The code quoted above has since been moved or replaced, but the use of the “sync” hint should still be the same in 2018 as it was in 2016.

                                                                              So I don’t believe it really matters whether the requests are made using Linux AIO or not.

                                                                              (I notice AIO is only supported for O_DIRECT, therefore all AIO should be “synchronous” from the IO scheduler’s point of view :-). At least as of v4.20. The proposed new AIO interface supports buffered (non-O_DIRECT) IO. That will go through the same code above, so then the hint will still be set according to whether O_SYNC is used).

                                                                              share|improve this answer

                                                                                1

                                                                                The form of requests processed by the Linux IO schedulers, have various “hints” set on them. One of them is the “sync” hint.

                                                                                All IO is handled async in Linux. This is fine for background
                                                                                writes, but for reads or writes that someone waits for completion
                                                                                on, we want to notify the block layer and IO scheduler so that they
                                                                                know about it. That allows them to make better scheduling
                                                                                decisions. So when the below references ‘sync’ and ‘async’, it
                                                                                is referencing this priority hint.

                                                                                — include/linux/fs.h (2016-11-01)

                                                                                Read requests are always treated as synchronous.

                                                                                block: don’t use REQ_SYNC in the READ_SYNC definition (2016-11-01)

                                                                                Reads are synchronous per definition, don’t add another flag for it.

                                                                                Both O_DIRECT and O_SYNC writes are treated as synchronous.

                                                                                #define READ_SYNC       0
                                                                                #define WRITE_SYNC      (REQ_SYNC | REQ_NOIDLE)
                                                                                #define WRITE_ODIRECT   REQ_SYNC
                                                                                

                                                                                IO requests initiated by fsync() use the same hint as O_SYNC writes. Although if the IO request has already been initiated and fsync() must wait for the existing request, I see no mechanism to adjust the request.

                                                                                Re: trying to understand READ_META, READ_SYNC, WRITE_SYNC & co (2010)

                                                                                But that leaves the question why disabling the idling logical for
                                                                                data integrity ->writepage is fine? This gets called from ->fsync
                                                                                or O_SYNC writes and will have the same impact as O_DIRECT writes.

                                                                                We have never enabled idling for those. O_SYNC should get a nice
                                                                                boost too, it just needs to be benchmarked and tested and then
                                                                                there would be no reason not to add it.

                                                                                We’ve only started using any kind of sync tag last year in ->writepage
                                                                                in commit a64c8610bd3b
                                                                                “block_write_full_page: Use synchronous writes for WBC_SYNC_ALL
                                                                                writebacks”

                                                                                “disabling idling” is a different hint flag, which is a bit harder to explain. But the commit linked in the above quote confirms the use of the WRITE_SYNC hint for fsync().

                                                                                The code quoted above has since been moved or replaced, but the use of the “sync” hint should still be the same in 2018 as it was in 2016.

                                                                                So I don’t believe it really matters whether the requests are made using Linux AIO or not.

                                                                                (I notice AIO is only supported for O_DIRECT, therefore all AIO should be “synchronous” from the IO scheduler’s point of view :-). At least as of v4.20. The proposed new AIO interface supports buffered (non-O_DIRECT) IO. That will go through the same code above, so then the hint will still be set according to whether O_SYNC is used).

                                                                                share|improve this answer

                                                                                  1

                                                                                  1

                                                                                  1

                                                                                  The form of requests processed by the Linux IO schedulers, have various “hints” set on them. One of them is the “sync” hint.

                                                                                  All IO is handled async in Linux. This is fine for background
                                                                                  writes, but for reads or writes that someone waits for completion
                                                                                  on, we want to notify the block layer and IO scheduler so that they
                                                                                  know about it. That allows them to make better scheduling
                                                                                  decisions. So when the below references ‘sync’ and ‘async’, it
                                                                                  is referencing this priority hint.

                                                                                  — include/linux/fs.h (2016-11-01)

                                                                                  Read requests are always treated as synchronous.

                                                                                  block: don’t use REQ_SYNC in the READ_SYNC definition (2016-11-01)

                                                                                  Reads are synchronous per definition, don’t add another flag for it.

                                                                                  Both O_DIRECT and O_SYNC writes are treated as synchronous.

                                                                                  #define READ_SYNC       0
                                                                                  #define WRITE_SYNC      (REQ_SYNC | REQ_NOIDLE)
                                                                                  #define WRITE_ODIRECT   REQ_SYNC
                                                                                  

                                                                                  IO requests initiated by fsync() use the same hint as O_SYNC writes. Although if the IO request has already been initiated and fsync() must wait for the existing request, I see no mechanism to adjust the request.

                                                                                  Re: trying to understand READ_META, READ_SYNC, WRITE_SYNC & co (2010)

                                                                                  But that leaves the question why disabling the idling logical for
                                                                                  data integrity ->writepage is fine? This gets called from ->fsync
                                                                                  or O_SYNC writes and will have the same impact as O_DIRECT writes.

                                                                                  We have never enabled idling for those. O_SYNC should get a nice
                                                                                  boost too, it just needs to be benchmarked and tested and then
                                                                                  there would be no reason not to add it.

                                                                                  We’ve only started using any kind of sync tag last year in ->writepage
                                                                                  in commit a64c8610bd3b
                                                                                  “block_write_full_page: Use synchronous writes for WBC_SYNC_ALL
                                                                                  writebacks”

                                                                                  “disabling idling” is a different hint flag, which is a bit harder to explain. But the commit linked in the above quote confirms the use of the WRITE_SYNC hint for fsync().

                                                                                  The code quoted above has since been moved or replaced, but the use of the “sync” hint should still be the same in 2018 as it was in 2016.

                                                                                  So I don’t believe it really matters whether the requests are made using Linux AIO or not.

                                                                                  (I notice AIO is only supported for O_DIRECT, therefore all AIO should be “synchronous” from the IO scheduler’s point of view :-). At least as of v4.20. The proposed new AIO interface supports buffered (non-O_DIRECT) IO. That will go through the same code above, so then the hint will still be set according to whether O_SYNC is used).

                                                                                  share|improve this answer

                                                                                  The form of requests processed by the Linux IO schedulers, have various “hints” set on them. One of them is the “sync” hint.

                                                                                  All IO is handled async in Linux. This is fine for background
                                                                                  writes, but for reads or writes that someone waits for completion
                                                                                  on, we want to notify the block layer and IO scheduler so that they
                                                                                  know about it. That allows them to make better scheduling
                                                                                  decisions. So when the below references ‘sync’ and ‘async’, it
                                                                                  is referencing this priority hint.

                                                                                  — include/linux/fs.h (2016-11-01)

                                                                                  Read requests are always treated as synchronous.

                                                                                  block: don’t use REQ_SYNC in the READ_SYNC definition (2016-11-01)

                                                                                  Reads are synchronous per definition, don’t add another flag for it.

                                                                                  Both O_DIRECT and O_SYNC writes are treated as synchronous.

                                                                                  #define READ_SYNC       0
                                                                                  #define WRITE_SYNC      (REQ_SYNC | REQ_NOIDLE)
                                                                                  #define WRITE_ODIRECT   REQ_SYNC
                                                                                  

                                                                                  IO requests initiated by fsync() use the same hint as O_SYNC writes. Although if the IO request has already been initiated and fsync() must wait for the existing request, I see no mechanism to adjust the request.

                                                                                  Re: trying to understand READ_META, READ_SYNC, WRITE_SYNC & co (2010)

                                                                                  But that leaves the question why disabling the idling logical for
                                                                                  data integrity ->writepage is fine? This gets called from ->fsync
                                                                                  or O_SYNC writes and will have the same impact as O_DIRECT writes.

                                                                                  We have never enabled idling for those. O_SYNC should get a nice
                                                                                  boost too, it just needs to be benchmarked and tested and then
                                                                                  there would be no reason not to add it.

                                                                                  We’ve only started using any kind of sync tag last year in ->writepage
                                                                                  in commit a64c8610bd3b
                                                                                  “block_write_full_page: Use synchronous writes for WBC_SYNC_ALL
                                                                                  writebacks”

                                                                                  “disabling idling” is a different hint flag, which is a bit harder to explain. But the commit linked in the above quote confirms the use of the WRITE_SYNC hint for fsync().

                                                                                  The code quoted above has since been moved or replaced, but the use of the “sync” hint should still be the same in 2018 as it was in 2016.

                                                                                  So I don’t believe it really matters whether the requests are made using Linux AIO or not.

                                                                                  (I notice AIO is only supported for O_DIRECT, therefore all AIO should be “synchronous” from the IO scheduler’s point of view :-). At least as of v4.20. The proposed new AIO interface supports buffered (non-O_DIRECT) IO. That will go through the same code above, so then the hint will still be set according to whether O_SYNC is used).

                                                                                  share|improve this answer

                                                                                  share|improve this answer

                                                                                  share|improve this answer

                                                                                  edited Jan 26 at 16:01

                                                                                  answered Jan 26 at 14:38

                                                                                  sourcejedisourcejedi

                                                                                  24.2k440107

                                                                                  24.2k440107

                                                                                      draft saved
                                                                                      draft discarded

                                                                                      Thanks for contributing an answer to Unix & Linux Stack Exchange!

                                                                                      • Please be sure to answer the question. Provide details and share your research!

                                                                                      But avoid

                                                                                      • Asking for help, clarification, or responding to other answers.
                                                                                      • Making statements based on opinion; back them up with references or personal experience.

                                                                                      To learn more, see our tips on writing great answers.

                                                                                      draft saved

                                                                                      draft discarded

                                                                                      StackExchange.ready(
                                                                                      function () {
                                                                                      StackExchange.openid.initPostLogin(‘.new-post-login’, ‘https%3a%2f%2funix.stackexchange.com%2fquestions%2f496855%2fhow-should-we-interpret-the-phrase-asynchronous-requests-in-cfq-iosched-txt%23new-answer’, ‘question_page’);
                                                                                      }
                                                                                      );

                                                                                      Post as a guest

                                                                                      Required, but never shown

                                                                                      Required, but never shown

                                                                                      Required, but never shown

                                                                                      Required, but never shown

                                                                                      Required, but never shown

                                                                                      Required, but never shown

                                                                                      Required, but never shown

                                                                                      Required, but never shown

                                                                                      Required, but never shown

                                                                                      functions folder in trace_stat folder of ftrace

                                                                                      The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP

                                                                                      0

                                                                                      I am learning ftrace, I read from the following link that I can enable function profiling using the ‘function_profile_enabled’ file.

                                                                                      mount -t tracefs nodev /sys/kernel/tracing
                                                                                      cd /sys/kernel/tracing
                                                                                      echo 1 > function_profile_enabled
                                                                                      echo "function" > current_tracer
                                                                                      

                                                                                      https://www.kernel.org/doc/html/v4.18/trace/ftrace.html

                                                                                      The above link tells that the information is present in trace_stats/function (function0, function1..)

                                                                                      $ ls trace_stat/function*
                                                                                      trace_stat/function0   trace_stat/function15  trace_stat/function21  trace_stat/function28  trace_stat/function6
                                                                                      trace_stat/function1   trace_stat/function16  trace_stat/function22  trace_stat/function29  trace_stat/function7
                                                                                      trace_stat/function10  trace_stat/function17  trace_stat/function23  trace_stat/function3   trace_stat/function8
                                                                                      trace_stat/function11  trace_stat/function18  trace_stat/function24  trace_stat/function30  trace_stat/function9
                                                                                      trace_stat/function12  trace_stat/function19  trace_stat/function25  trace_stat/function31
                                                                                      trace_stat/function13  trace_stat/function2   trace_stat/function26  trace_stat/function4
                                                                                      trace_stat/function14  trace_stat/function20  trace_stat/function27  trace_stat/function5
                                                                                      root tracing
                                                                                      

                                                                                      I only have 4 cores on my Ubuntu VM

                                                                                      $ grep -c ^processor /proc/cpuinfo     
                                                                                      4
                                                                                      

                                                                                      Can anyone explain me the actual significance of this file function<> in trace_stat folder
                                                                                      functions folder in trace_stat folder

                                                                                      share|improve this question

                                                                                        0

                                                                                        I am learning ftrace, I read from the following link that I can enable function profiling using the ‘function_profile_enabled’ file.

                                                                                        mount -t tracefs nodev /sys/kernel/tracing
                                                                                        cd /sys/kernel/tracing
                                                                                        echo 1 > function_profile_enabled
                                                                                        echo "function" > current_tracer
                                                                                        

                                                                                        https://www.kernel.org/doc/html/v4.18/trace/ftrace.html

                                                                                        The above link tells that the information is present in trace_stats/function (function0, function1..)

                                                                                        $ ls trace_stat/function*
                                                                                        trace_stat/function0   trace_stat/function15  trace_stat/function21  trace_stat/function28  trace_stat/function6
                                                                                        trace_stat/function1   trace_stat/function16  trace_stat/function22  trace_stat/function29  trace_stat/function7
                                                                                        trace_stat/function10  trace_stat/function17  trace_stat/function23  trace_stat/function3   trace_stat/function8
                                                                                        trace_stat/function11  trace_stat/function18  trace_stat/function24  trace_stat/function30  trace_stat/function9
                                                                                        trace_stat/function12  trace_stat/function19  trace_stat/function25  trace_stat/function31
                                                                                        trace_stat/function13  trace_stat/function2   trace_stat/function26  trace_stat/function4
                                                                                        trace_stat/function14  trace_stat/function20  trace_stat/function27  trace_stat/function5
                                                                                        root tracing
                                                                                        

                                                                                        I only have 4 cores on my Ubuntu VM

                                                                                        $ grep -c ^processor /proc/cpuinfo     
                                                                                        4
                                                                                        

                                                                                        Can anyone explain me the actual significance of this file function<> in trace_stat folder
                                                                                        functions folder in trace_stat folder

                                                                                        share|improve this question

                                                                                          0

                                                                                          0

                                                                                          0

                                                                                          I am learning ftrace, I read from the following link that I can enable function profiling using the ‘function_profile_enabled’ file.

                                                                                          mount -t tracefs nodev /sys/kernel/tracing
                                                                                          cd /sys/kernel/tracing
                                                                                          echo 1 > function_profile_enabled
                                                                                          echo "function" > current_tracer
                                                                                          

                                                                                          https://www.kernel.org/doc/html/v4.18/trace/ftrace.html

                                                                                          The above link tells that the information is present in trace_stats/function (function0, function1..)

                                                                                          $ ls trace_stat/function*
                                                                                          trace_stat/function0   trace_stat/function15  trace_stat/function21  trace_stat/function28  trace_stat/function6
                                                                                          trace_stat/function1   trace_stat/function16  trace_stat/function22  trace_stat/function29  trace_stat/function7
                                                                                          trace_stat/function10  trace_stat/function17  trace_stat/function23  trace_stat/function3   trace_stat/function8
                                                                                          trace_stat/function11  trace_stat/function18  trace_stat/function24  trace_stat/function30  trace_stat/function9
                                                                                          trace_stat/function12  trace_stat/function19  trace_stat/function25  trace_stat/function31
                                                                                          trace_stat/function13  trace_stat/function2   trace_stat/function26  trace_stat/function4
                                                                                          trace_stat/function14  trace_stat/function20  trace_stat/function27  trace_stat/function5
                                                                                          root tracing
                                                                                          

                                                                                          I only have 4 cores on my Ubuntu VM

                                                                                          $ grep -c ^processor /proc/cpuinfo     
                                                                                          4
                                                                                          

                                                                                          Can anyone explain me the actual significance of this file function<> in trace_stat folder
                                                                                          functions folder in trace_stat folder

                                                                                          share|improve this question

                                                                                          I am learning ftrace, I read from the following link that I can enable function profiling using the ‘function_profile_enabled’ file.

                                                                                          mount -t tracefs nodev /sys/kernel/tracing
                                                                                          cd /sys/kernel/tracing
                                                                                          echo 1 > function_profile_enabled
                                                                                          echo "function" > current_tracer
                                                                                          

                                                                                          https://www.kernel.org/doc/html/v4.18/trace/ftrace.html

                                                                                          The above link tells that the information is present in trace_stats/function (function0, function1..)

                                                                                          $ ls trace_stat/function*
                                                                                          trace_stat/function0   trace_stat/function15  trace_stat/function21  trace_stat/function28  trace_stat/function6
                                                                                          trace_stat/function1   trace_stat/function16  trace_stat/function22  trace_stat/function29  trace_stat/function7
                                                                                          trace_stat/function10  trace_stat/function17  trace_stat/function23  trace_stat/function3   trace_stat/function8
                                                                                          trace_stat/function11  trace_stat/function18  trace_stat/function24  trace_stat/function30  trace_stat/function9
                                                                                          trace_stat/function12  trace_stat/function19  trace_stat/function25  trace_stat/function31
                                                                                          trace_stat/function13  trace_stat/function2   trace_stat/function26  trace_stat/function4
                                                                                          trace_stat/function14  trace_stat/function20  trace_stat/function27  trace_stat/function5
                                                                                          root tracing
                                                                                          

                                                                                          I only have 4 cores on my Ubuntu VM

                                                                                          $ grep -c ^processor /proc/cpuinfo     
                                                                                          4
                                                                                          

                                                                                          Can anyone explain me the actual significance of this file function<> in trace_stat folder
                                                                                          functions folder in trace_stat folder

                                                                                          linux linux-kernel debugging profiling ftrace

                                                                                          share|improve this question

                                                                                          share|improve this question

                                                                                          share|improve this question

                                                                                          share|improve this question

                                                                                          asked Jan 26 at 9:08

                                                                                          md.jamalmd.jamal

                                                                                          1094

                                                                                          1094

                                                                                              0

                                                                                              active

                                                                                              oldest

                                                                                              votes

                                                                                              Your Answer

                                                                                              StackExchange.ready(function() {
                                                                                              var channelOptions = {
                                                                                              tags: “”.split(” “),
                                                                                              id: “106”
                                                                                              };
                                                                                              initTagRenderer(“”.split(” “), “”.split(” “), channelOptions);

                                                                                              StackExchange.using(“externalEditor”, function() {
                                                                                              // Have to fire editor after snippets, if snippets enabled
                                                                                              if (StackExchange.settings.snippets.snippetsEnabled) {
                                                                                              StackExchange.using(“snippets”, function() {
                                                                                              createEditor();
                                                                                              });
                                                                                              }
                                                                                              else {
                                                                                              createEditor();
                                                                                              }
                                                                                              });

                                                                                              function createEditor() {
                                                                                              StackExchange.prepareEditor({
                                                                                              heartbeatType: ‘answer’,
                                                                                              autoActivateHeartbeat: false,
                                                                                              convertImagesToLinks: false,
                                                                                              noModals: true,
                                                                                              showLowRepImageUploadWarning: true,
                                                                                              reputationToPostImages: null,
                                                                                              bindNavPrevention: true,
                                                                                              postfix: “”,
                                                                                              imageUploader: {
                                                                                              brandingHtml: “Powered by u003ca class=”icon-imgur-white” href=”https://imgur.com/”u003eu003c/au003e”,
                                                                                              contentPolicyHtml: “User contributions licensed under u003ca href=”https://creativecommons.org/licenses/by-sa/3.0/”u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href=”https://stackoverflow.com/legal/content-policy”u003e(content policy)u003c/au003e”,
                                                                                              allowUrls: true
                                                                                              },
                                                                                              onDemand: true,
                                                                                              discardSelector: “.discard-answer”
                                                                                              ,immediatelyShowMarkdownHelp:true
                                                                                              });

                                                                                              }
                                                                                              });

                                                                                              draft saved
                                                                                              draft discarded

                                                                                              StackExchange.ready(
                                                                                              function () {
                                                                                              StackExchange.openid.initPostLogin(‘.new-post-login’, ‘https%3a%2f%2funix.stackexchange.com%2fquestions%2f496839%2ffunctions-folder-in-trace-stat-folder-of-ftrace%23new-answer’, ‘question_page’);
                                                                                              }
                                                                                              );

                                                                                              Post as a guest

                                                                                              Required, but never shown

                                                                                              0

                                                                                              active

                                                                                              oldest

                                                                                              votes

                                                                                              0

                                                                                              active

                                                                                              oldest

                                                                                              votes

                                                                                              active

                                                                                              oldest

                                                                                              votes

                                                                                              active

                                                                                              oldest

                                                                                              votes

                                                                                              draft saved
                                                                                              draft discarded

                                                                                              Thanks for contributing an answer to Unix & Linux Stack Exchange!

                                                                                              • Please be sure to answer the question. Provide details and share your research!

                                                                                              But avoid

                                                                                              • Asking for help, clarification, or responding to other answers.
                                                                                              • Making statements based on opinion; back them up with references or personal experience.

                                                                                              To learn more, see our tips on writing great answers.

                                                                                              draft saved

                                                                                              draft discarded

                                                                                              StackExchange.ready(
                                                                                              function () {
                                                                                              StackExchange.openid.initPostLogin(‘.new-post-login’, ‘https%3a%2f%2funix.stackexchange.com%2fquestions%2f496839%2ffunctions-folder-in-trace-stat-folder-of-ftrace%23new-answer’, ‘question_page’);
                                                                                              }
                                                                                              );

                                                                                              Post as a guest

                                                                                              Required, but never shown

                                                                                              Required, but never shown

                                                                                              Required, but never shown

                                                                                              Required, but never shown

                                                                                              Required, but never shown

                                                                                              Required, but never shown

                                                                                              Required, but never shown

                                                                                              Required, but never shown

                                                                                              Required, but never shown

                                                                                              How can I see the kernel logs?

                                                                                              The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP

                                                                                              0

                                                                                              I run Ubuntu 16.04

                                                                                              In the linux kernel there are certain log statement for conditions on packet filtering which I’d like to see if they are actually triggered.

                                                                                              One example is:

                                                                                              /* Smaller that minimal TCP header? */
                                                                                              th = skb_header_pointer(skb, dataoff, sizeof(_tcph), &_tcph);
                                                                                              if (th == NULL) {
                                                                                                  if (LOG_INVALID(net, IPPROTO_TCP))
                                                                                                      nf_log_packet(net, pf, 0, skb, NULL, NULL, NULL,
                                                                                                          "nf_ct_tcp: short packet ");
                                                                                                  return -NF_ACCEPT;
                                                                                              }
                                                                                              

                                                                                              https://github.com/torvalds/linux/blob/master/net/netfilter/nf_conntrack_proto_tcp.c
                                                                                              Line 760

                                                                                              How can I setup my linux system so I can see the nf_log_packet() output somewhere? Perhaps in /var/log/syslog or some other destination.

                                                                                              Where does it get logged? How do I activate logging?

                                                                                              share|improve this question

                                                                                                0

                                                                                                I run Ubuntu 16.04

                                                                                                In the linux kernel there are certain log statement for conditions on packet filtering which I’d like to see if they are actually triggered.

                                                                                                One example is:

                                                                                                /* Smaller that minimal TCP header? */
                                                                                                th = skb_header_pointer(skb, dataoff, sizeof(_tcph), &_tcph);
                                                                                                if (th == NULL) {
                                                                                                    if (LOG_INVALID(net, IPPROTO_TCP))
                                                                                                        nf_log_packet(net, pf, 0, skb, NULL, NULL, NULL,
                                                                                                            "nf_ct_tcp: short packet ");
                                                                                                    return -NF_ACCEPT;
                                                                                                }
                                                                                                

                                                                                                https://github.com/torvalds/linux/blob/master/net/netfilter/nf_conntrack_proto_tcp.c
                                                                                                Line 760

                                                                                                How can I setup my linux system so I can see the nf_log_packet() output somewhere? Perhaps in /var/log/syslog or some other destination.

                                                                                                Where does it get logged? How do I activate logging?

                                                                                                share|improve this question

                                                                                                  0

                                                                                                  0

                                                                                                  0

                                                                                                  I run Ubuntu 16.04

                                                                                                  In the linux kernel there are certain log statement for conditions on packet filtering which I’d like to see if they are actually triggered.

                                                                                                  One example is:

                                                                                                  /* Smaller that minimal TCP header? */
                                                                                                  th = skb_header_pointer(skb, dataoff, sizeof(_tcph), &_tcph);
                                                                                                  if (th == NULL) {
                                                                                                      if (LOG_INVALID(net, IPPROTO_TCP))
                                                                                                          nf_log_packet(net, pf, 0, skb, NULL, NULL, NULL,
                                                                                                              "nf_ct_tcp: short packet ");
                                                                                                      return -NF_ACCEPT;
                                                                                                  }
                                                                                                  

                                                                                                  https://github.com/torvalds/linux/blob/master/net/netfilter/nf_conntrack_proto_tcp.c
                                                                                                  Line 760

                                                                                                  How can I setup my linux system so I can see the nf_log_packet() output somewhere? Perhaps in /var/log/syslog or some other destination.

                                                                                                  Where does it get logged? How do I activate logging?

                                                                                                  share|improve this question

                                                                                                  I run Ubuntu 16.04

                                                                                                  In the linux kernel there are certain log statement for conditions on packet filtering which I’d like to see if they are actually triggered.

                                                                                                  One example is:

                                                                                                  /* Smaller that minimal TCP header? */
                                                                                                  th = skb_header_pointer(skb, dataoff, sizeof(_tcph), &_tcph);
                                                                                                  if (th == NULL) {
                                                                                                      if (LOG_INVALID(net, IPPROTO_TCP))
                                                                                                          nf_log_packet(net, pf, 0, skb, NULL, NULL, NULL,
                                                                                                              "nf_ct_tcp: short packet ");
                                                                                                      return -NF_ACCEPT;
                                                                                                  }
                                                                                                  

                                                                                                  https://github.com/torvalds/linux/blob/master/net/netfilter/nf_conntrack_proto_tcp.c
                                                                                                  Line 760

                                                                                                  How can I setup my linux system so I can see the nf_log_packet() output somewhere? Perhaps in /var/log/syslog or some other destination.

                                                                                                  Where does it get logged? How do I activate logging?

                                                                                                  kernel linux-kernel logs netfilter

                                                                                                  share|improve this question

                                                                                                  share|improve this question

                                                                                                  share|improve this question

                                                                                                  share|improve this question

                                                                                                  asked Aug 19 ’17 at 1:20

                                                                                                  grandnastygrandnasty

                                                                                                  1012

                                                                                                  1012

                                                                                                      1 Answer
                                                                                                      1

                                                                                                      active

                                                                                                      oldest

                                                                                                      votes

                                                                                                      0

                                                                                                      So, the following steps worked:

                                                                                                      Install Ulog which interfaces with some plugins to capture the kernel logging output

                                                                                                      sudo apt install ulog2

                                                                                                      Then activate the state INVALID logging by
                                                                                                      sudo echo “255” > /proc/sys/net/netfilter/nf_conntrack_log_invalid

                                                                                                      More documentation on the 255 here:
                                                                                                      https://www.kernel.org/doc/Documentation/networking/nf_conntrack-sysctl.txt

                                                                                                      Set Ulog capture level to debug in:
                                                                                                      /etc/ulog.conf

                                                                                                      Then the log, if you trigger it, will be stored in:
                                                                                                      /var/log/ulog/syslogemu.log

                                                                                                      share|improve this answer

                                                                                                        Your Answer

                                                                                                        StackExchange.ready(function() {
                                                                                                        var channelOptions = {
                                                                                                        tags: “”.split(” “),
                                                                                                        id: “106”
                                                                                                        };
                                                                                                        initTagRenderer(“”.split(” “), “”.split(” “), channelOptions);

                                                                                                        StackExchange.using(“externalEditor”, function() {
                                                                                                        // Have to fire editor after snippets, if snippets enabled
                                                                                                        if (StackExchange.settings.snippets.snippetsEnabled) {
                                                                                                        StackExchange.using(“snippets”, function() {
                                                                                                        createEditor();
                                                                                                        });
                                                                                                        }
                                                                                                        else {
                                                                                                        createEditor();
                                                                                                        }
                                                                                                        });

                                                                                                        function createEditor() {
                                                                                                        StackExchange.prepareEditor({
                                                                                                        heartbeatType: ‘answer’,
                                                                                                        autoActivateHeartbeat: false,
                                                                                                        convertImagesToLinks: false,
                                                                                                        noModals: true,
                                                                                                        showLowRepImageUploadWarning: true,
                                                                                                        reputationToPostImages: null,
                                                                                                        bindNavPrevention: true,
                                                                                                        postfix: “”,
                                                                                                        imageUploader: {
                                                                                                        brandingHtml: “Powered by u003ca class=”icon-imgur-white” href=”https://imgur.com/”u003eu003c/au003e”,
                                                                                                        contentPolicyHtml: “User contributions licensed under u003ca href=”https://creativecommons.org/licenses/by-sa/3.0/”u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href=”https://stackoverflow.com/legal/content-policy”u003e(content policy)u003c/au003e”,
                                                                                                        allowUrls: true
                                                                                                        },
                                                                                                        onDemand: true,
                                                                                                        discardSelector: “.discard-answer”
                                                                                                        ,immediatelyShowMarkdownHelp:true
                                                                                                        });

                                                                                                        }
                                                                                                        });

                                                                                                        draft saved
                                                                                                        draft discarded

                                                                                                        StackExchange.ready(
                                                                                                        function () {
                                                                                                        StackExchange.openid.initPostLogin(‘.new-post-login’, ‘https%3a%2f%2funix.stackexchange.com%2fquestions%2f387084%2fhow-can-i-see-the-kernel-logs%23new-answer’, ‘question_page’);
                                                                                                        }
                                                                                                        );

                                                                                                        Post as a guest

                                                                                                        Required, but never shown

                                                                                                        1 Answer
                                                                                                        1

                                                                                                        active

                                                                                                        oldest

                                                                                                        votes

                                                                                                        1 Answer
                                                                                                        1

                                                                                                        active

                                                                                                        oldest

                                                                                                        votes

                                                                                                        active

                                                                                                        oldest

                                                                                                        votes

                                                                                                        active

                                                                                                        oldest

                                                                                                        votes

                                                                                                        0

                                                                                                        So, the following steps worked:

                                                                                                        Install Ulog which interfaces with some plugins to capture the kernel logging output

                                                                                                        sudo apt install ulog2

                                                                                                        Then activate the state INVALID logging by
                                                                                                        sudo echo “255” > /proc/sys/net/netfilter/nf_conntrack_log_invalid

                                                                                                        More documentation on the 255 here:
                                                                                                        https://www.kernel.org/doc/Documentation/networking/nf_conntrack-sysctl.txt

                                                                                                        Set Ulog capture level to debug in:
                                                                                                        /etc/ulog.conf

                                                                                                        Then the log, if you trigger it, will be stored in:
                                                                                                        /var/log/ulog/syslogemu.log

                                                                                                        share|improve this answer

                                                                                                          0

                                                                                                          So, the following steps worked:

                                                                                                          Install Ulog which interfaces with some plugins to capture the kernel logging output

                                                                                                          sudo apt install ulog2

                                                                                                          Then activate the state INVALID logging by
                                                                                                          sudo echo “255” > /proc/sys/net/netfilter/nf_conntrack_log_invalid

                                                                                                          More documentation on the 255 here:
                                                                                                          https://www.kernel.org/doc/Documentation/networking/nf_conntrack-sysctl.txt

                                                                                                          Set Ulog capture level to debug in:
                                                                                                          /etc/ulog.conf

                                                                                                          Then the log, if you trigger it, will be stored in:
                                                                                                          /var/log/ulog/syslogemu.log

                                                                                                          share|improve this answer

                                                                                                            0

                                                                                                            0

                                                                                                            0

                                                                                                            So, the following steps worked:

                                                                                                            Install Ulog which interfaces with some plugins to capture the kernel logging output

                                                                                                            sudo apt install ulog2

                                                                                                            Then activate the state INVALID logging by
                                                                                                            sudo echo “255” > /proc/sys/net/netfilter/nf_conntrack_log_invalid

                                                                                                            More documentation on the 255 here:
                                                                                                            https://www.kernel.org/doc/Documentation/networking/nf_conntrack-sysctl.txt

                                                                                                            Set Ulog capture level to debug in:
                                                                                                            /etc/ulog.conf

                                                                                                            Then the log, if you trigger it, will be stored in:
                                                                                                            /var/log/ulog/syslogemu.log

                                                                                                            share|improve this answer

                                                                                                            So, the following steps worked:

                                                                                                            Install Ulog which interfaces with some plugins to capture the kernel logging output

                                                                                                            sudo apt install ulog2

                                                                                                            Then activate the state INVALID logging by
                                                                                                            sudo echo “255” > /proc/sys/net/netfilter/nf_conntrack_log_invalid

                                                                                                            More documentation on the 255 here:
                                                                                                            https://www.kernel.org/doc/Documentation/networking/nf_conntrack-sysctl.txt

                                                                                                            Set Ulog capture level to debug in:
                                                                                                            /etc/ulog.conf

                                                                                                            Then the log, if you trigger it, will be stored in:
                                                                                                            /var/log/ulog/syslogemu.log

                                                                                                            share|improve this answer

                                                                                                            share|improve this answer

                                                                                                            share|improve this answer

                                                                                                            answered Aug 19 ’17 at 1:39

                                                                                                            grandnastygrandnasty

                                                                                                            1012

                                                                                                            1012

                                                                                                                draft saved
                                                                                                                draft discarded

                                                                                                                Thanks for contributing an answer to Unix & Linux Stack Exchange!

                                                                                                                • Please be sure to answer the question. Provide details and share your research!

                                                                                                                But avoid

                                                                                                                • Asking for help, clarification, or responding to other answers.
                                                                                                                • Making statements based on opinion; back them up with references or personal experience.

                                                                                                                To learn more, see our tips on writing great answers.

                                                                                                                draft saved

                                                                                                                draft discarded

                                                                                                                StackExchange.ready(
                                                                                                                function () {
                                                                                                                StackExchange.openid.initPostLogin(‘.new-post-login’, ‘https%3a%2f%2funix.stackexchange.com%2fquestions%2f387084%2fhow-can-i-see-the-kernel-logs%23new-answer’, ‘question_page’);
                                                                                                                }
                                                                                                                );

                                                                                                                Post as a guest

                                                                                                                Required, but never shown

                                                                                                                Required, but never shown

                                                                                                                Required, but never shown

                                                                                                                Required, but never shown

                                                                                                                Required, but never shown

                                                                                                                Required, but never shown

                                                                                                                Required, but never shown

                                                                                                                Required, but never shown

                                                                                                                Required, but never shown

                                                                                                                nic: Something Wicked happened! ffff

                                                                                                                The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP

                                                                                                                8

                                                                                                                I’m configuring a GNU/Linux Router with Debian Stretch (9.7) and before rebooting the server, all traffic from one interface to another was going ok, but after that, I received a message like this (tty):

                                                                                                                enp1s6: Something Wicked happened! ffff.
                                                                                                                

                                                                                                                I have a host on the same switch and same network, for testing purposes, and basically, the LAN of the Router is not answering to echo requests.

                                                                                                                Here goes some information about the server.

                                                                                                                kernel.log

                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.494127] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.494127] 100Mbps, half duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.494254] enp1s6: Something Wicked happened! ffff.
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.497338] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.497557] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.497557] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.499986] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.500206] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.500206] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.500447] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.500667] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.500667] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.500895] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.501114] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.501114] 10Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.501341] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.501559] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.501559] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.503985] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.504204] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.504204] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.504326] enp1s6: Something Wicked happened! ffff.
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.529009] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.529229] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.529230] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.529484] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.529732] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.529735] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.531075] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.531295] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.531296] 100Mbps, half duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.531531] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.531751] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.531751] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.531977] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.532196] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.532196] 100Mbps, half duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.532422] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.532642] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.532642] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.532869] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.533089] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.533090] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.533214] enp1s6: Something Wicked happened! ffff.
                                                                                                                

                                                                                                                lspci (nics): enp0s7 + enp1s6

                                                                                                                00:07.0 Bridge: NVIDIA Corporation MCP61 Ethernet (rev a2)
                                                                                                                    Subsystem: Gigabyte Technology Co., Ltd MCP61 Ethernet
                                                                                                                    Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 24, NUMA node 0
                                                                                                                    Memory at fe02d000 (32-bit, non-prefetchable) [size=4K]
                                                                                                                    I/O ports at f000 [size=8]
                                                                                                                    Capabilities: [44] Power Management version 2
                                                                                                                    Capabilities: [50] MSI: Enable+ Count=1/8 Maskable+ 64bit+
                                                                                                                    Capabilities: [6c] HyperTransport: MSI Mapping Enable- Fixed+
                                                                                                                    Kernel driver in use: forcedeth
                                                                                                                    Kernel modules: forcedeth
                                                                                                                
                                                                                                                01:06.0 Ethernet controller: Sundance Technology Inc / IC Plus Corp IC Plus IP100A Integrated 10/100 Ethernet MAC + PHY (rev 31)
                                                                                                                    Flags: bus master, medium devsel, latency 0, IRQ 16, NUMA node 0
                                                                                                                    I/O ports at b000 [size=128]
                                                                                                                    Memory at fde00000 (32-bit, non-prefetchable) [size=512]
                                                                                                                    [virtual] Expansion ROM at fdf00000 [disabled] [size=64K]
                                                                                                                    Capabilities: [50] Power Management version 2
                                                                                                                    Kernel driver in use: sundance
                                                                                                                    Kernel modules: sundance
                                                                                                                

                                                                                                                ethtool

                                                                                                                Settings for enp0s7:
                                                                                                                    Supported ports: [ MII ]
                                                                                                                    Supported link modes:   10baseT/Half 10baseT/Full 
                                                                                                                                            100baseT/Half 100baseT/Full 
                                                                                                                                            1000baseT/Full 
                                                                                                                    Supported pause frame use: No
                                                                                                                    Supports auto-negotiation: Yes
                                                                                                                    Advertised link modes:  10baseT/Half 10baseT/Full 
                                                                                                                                            100baseT/Half 100baseT/Full 
                                                                                                                                            1000baseT/Full 
                                                                                                                    Advertised pause frame use: No
                                                                                                                    Advertised auto-negotiation: Yes
                                                                                                                    Speed: 100Mb/s
                                                                                                                    Duplex: Full
                                                                                                                    Port: MII
                                                                                                                    PHYAD: 3
                                                                                                                    Transceiver: external
                                                                                                                    Auto-negotiation: on
                                                                                                                    Supports Wake-on: g
                                                                                                                    Wake-on: d
                                                                                                                    Link detected: yes
                                                                                                                
                                                                                                                Settings for enp1s6:
                                                                                                                    Supported ports: [ TP MII ]
                                                                                                                    Supported link modes:   10baseT/Half 10baseT/Full 
                                                                                                                                            100baseT/Half 100baseT/Full 
                                                                                                                    Supported pause frame use: No
                                                                                                                    Supports auto-negotiation: Yes
                                                                                                                    Advertised link modes:  Not reported
                                                                                                                    Advertised pause frame use: No
                                                                                                                    Advertised auto-negotiation: No
                                                                                                                    Speed: 100Mb/s
                                                                                                                    Duplex: Full
                                                                                                                    Port: MII
                                                                                                                    PHYAD: 0
                                                                                                                    Transceiver: internal
                                                                                                                    Auto-negotiation: off
                                                                                                                    Supports Wake-on: pg
                                                                                                                    Wake-on: d
                                                                                                                    Current message level: 0x00000001 (1)
                                                                                                                                   drv
                                                                                                                    Link detected: yes
                                                                                                                

                                                                                                                ethtool statistics (enp1s6)

                                                                                                                NIC statistics:
                                                                                                                     tx_multiple_collisions: 26010
                                                                                                                     tx_single_collisions: 27540
                                                                                                                     tx_late_collisions: 5100
                                                                                                                     tx_deferred: 27030
                                                                                                                     tx_deferred_excessive: 26010
                                                                                                                     tx_aborted: 6630
                                                                                                                     tx_bcasts: 27030
                                                                                                                     rx_bcasts: 27032
                                                                                                                     tx_mcasts: 5610
                                                                                                                     rx_mcasts: 27285
                                                                                                                

                                                                                                                ip addr show

                                                                                                                1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
                                                                                                                    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
                                                                                                                    inet 127.0.0.1/8 scope host lo
                                                                                                                       valid_lft forever preferred_lft forever
                                                                                                                2: enp1s6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
                                                                                                                    link/ether 84:16:84:16:84:16 brd ff:ff:ff:ff:ff:ff
                                                                                                                    inet 192.168.1.1/24 brd 192.168.1.255 scope global enp1s6
                                                                                                                       valid_lft forever preferred_lft forever
                                                                                                                3: enp0s7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
                                                                                                                    link/ether 50:e5:49:64:f6:8b brd ff:ff:ff:ff:ff:ff
                                                                                                                    inet 192.168.0.12/24 brd 192.168.0.255 scope global enp0s7
                                                                                                                       valid_lft forever preferred_lft forever
                                                                                                                

                                                                                                                lsmod

                                                                                                                Module                  Size  Used by
                                                                                                                ip6table_filter        16384  0
                                                                                                                ip6_tables             28672  1 ip6table_filter
                                                                                                                xt_conntrack           16384  2
                                                                                                                nf_conntrack_netlink    36864  0
                                                                                                                nfnetlink              16384  6 nf_conntrack_netlink
                                                                                                                iptable_filter         16384  1
                                                                                                                ipt_MASQUERADE         16384  1
                                                                                                                nf_nat_masquerade_ipv4    16384  1 ipt_MASQUERADE
                                                                                                                iptable_nat            16384  1
                                                                                                                nf_conntrack_ipv4      16384  3
                                                                                                                nf_defrag_ipv4         16384  1 nf_conntrack_ipv4
                                                                                                                nf_nat_ipv4            16384  1 iptable_nat
                                                                                                                nf_nat                 24576  2 nf_nat_masquerade_ipv4,nf_nat_ipv4
                                                                                                                nf_conntrack          114688  6 nf_conntrack_ipv4,nf_conntrack_netlink,nf_nat_masquerade_ipv4,xt_conntrack,nf_nat_ipv4,nf_nat
                                                                                                                snd_hda_codec_realtek    90112  1
                                                                                                                snd_hda_codec_generic    69632  1 snd_hda_codec_realtek
                                                                                                                edac_mce_amd           28672  0
                                                                                                                edac_core              57344  0
                                                                                                                kvm                   598016  0
                                                                                                                evdev                  24576  2
                                                                                                                ppdev                  20480  0
                                                                                                                serio_raw              16384  0
                                                                                                                nouveau              1556480  1
                                                                                                                joydev                 20480  0
                                                                                                                snd_hda_intel          36864  0
                                                                                                                mxm_wmi                16384  1 nouveau
                                                                                                                snd_hda_codec         135168  3  snd_hda_intel,snd_hda_codec_generic,snd_hda_codec_realtek
                                                                                                                wmi                    16384  2 mxm_wmi,nouveau
                                                                                                                snd_hda_core           86016  4 snd_hda_intel,snd_hda_codec,snd_hda_codec_generic,snd_hda_codec_realtek
                                                                                                                video                  40960  1 nouveau
                                                                                                                snd_hwdep              16384  1 snd_hda_codec
                                                                                                                ttm                    98304  1 nouveau
                                                                                                                drm_kms_helper        155648  1 nouveau
                                                                                                                drm                   360448  4 nouveau,ttm,drm_kms_helper
                                                                                                                snd_pcm               110592  3 snd_hda_intel,snd_hda_codec,snd_hda_core
                                                                                                                irqbypass              16384  1 kvm
                                                                                                                sg                     32768  0
                                                                                                                pcspkr                 16384  0
                                                                                                                k10temp                16384  0
                                                                                                                parport_pc             28672  0
                                                                                                                parport                49152  2 parport_pc,ppdev
                                                                                                                i2c_algo_bit           16384  1 nouveau
                                                                                                                button                 16384  1 nouveau
                                                                                                                snd_timer              32768  1 snd_pcm
                                                                                                                snd                    86016  7 snd_hda_intel,snd_hwdep,snd_hda_codec,snd_timer,snd_hda_codec_generic,snd_hdacodec_realtek,snd_pcm
                                                                                                                soundcore              16384  1 snd
                                                                                                                acpi_cpufreq           20480  0
                                                                                                                ip_tables              24576  3 iptable_filter,iptable_nat
                                                                                                                x_tables               36864  6 ip_tables,iptable_filter,ipt_MASQUERADE,ip6table_filter,xt_conntrack,ip6_tables
                                                                                                                autofs4                40960  2
                                                                                                                ext4                  585728  2
                                                                                                                crc16                  16384  1 ext4
                                                                                                                jbd2                  106496  1 ext4
                                                                                                                fscrypto               28672  1 ext4
                                                                                                                ecb                    16384  0
                                                                                                                glue_helper            16384  0
                                                                                                                lrw                    16384  0
                                                                                                                gf128mul               16384  1 lrw
                                                                                                                ablk_helper            16384  0
                                                                                                                cryptd                 24576  1 ablk_helper
                                                                                                                aes_x86_64             20480  1
                                                                                                                mbcache                16384  3 ext4
                                                                                                                raid10                 49152  0
                                                                                                                raid456               106496  0
                                                                                                                async_raid6_recov      20480  1 raid456
                                                                                                                async_memcpy           16384  2 raid456,async_raid6_recov
                                                                                                                async_pq               16384  2 raid456,async_raid6_recov
                                                                                                                async_xor              16384  3 async_pq,raid456,async_raid6_recov
                                                                                                                async_tx               16384  5 async_xor,async_pq,raid456,async_memcpy,async_raid6_recov
                                                                                                                xor                    24576  1 async_xor
                                                                                                                raid6_pq              110592  3 async_pq,raid456,async_raid6_recov
                                                                                                                libcrc32c              16384  1 raid456
                                                                                                                crc32c_generic         16384  3
                                                                                                                raid0                  20480  0
                                                                                                                multipath              16384  0
                                                                                                                linear                 16384  0
                                                                                                                raid1                  36864  1
                                                                                                                md_mod                135168  6 raid1,raid10,multipath,linear,raid0,raid456
                                                                                                                sd_mod                 49152  7
                                                                                                                hid_generic            16384  0
                                                                                                                usbhid                 53248  0
                                                                                                                hid                   122880  2 hid_generic,usbhid
                                                                                                                ata_generic            16384  0
                                                                                                                ohci_pci               16384  0
                                                                                                                psmouse               135168  0
                                                                                                                sata_nv                28672  5
                                                                                                                forcedeth              69632  0
                                                                                                                ehci_pci               16384  0
                                                                                                                libata                249856  2 ata_generic,sata_nv
                                                                                                                ohci_hcd               53248  1 ohci_pci
                                                                                                                ehci_hcd               81920  1 ehci_pci
                                                                                                                scsi_mod              225280  3 sd_mod,libata,sg
                                                                                                                usbcore               253952  5 usbhid,ehci_hcd,ohci_pci,ohci_hcd,ehci_pci
                                                                                                                sundance               32768  0
                                                                                                                mii                    16384  1 sundance
                                                                                                                usb_common             16384  1 usbcore
                                                                                                                i2c_nforce2            16384  0
                                                                                                                

                                                                                                                Any guesses?

                                                                                                                Please, be patient: I’m a former SysAdmin (since years), nowadays Software Developer.

                                                                                                                share|improve this question

                                                                                                                • 1

                                                                                                                  Relevant webcomic to the above error: CommitStrip – It’s not working!

                                                                                                                  – Ferrybig
                                                                                                                  Jan 25 at 20:41

                                                                                                                8

                                                                                                                I’m configuring a GNU/Linux Router with Debian Stretch (9.7) and before rebooting the server, all traffic from one interface to another was going ok, but after that, I received a message like this (tty):

                                                                                                                enp1s6: Something Wicked happened! ffff.
                                                                                                                

                                                                                                                I have a host on the same switch and same network, for testing purposes, and basically, the LAN of the Router is not answering to echo requests.

                                                                                                                Here goes some information about the server.

                                                                                                                kernel.log

                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.494127] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.494127] 100Mbps, half duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.494254] enp1s6: Something Wicked happened! ffff.
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.497338] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.497557] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.497557] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.499986] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.500206] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.500206] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.500447] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.500667] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.500667] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.500895] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.501114] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.501114] 10Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.501341] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.501559] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.501559] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.503985] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.504204] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.504204] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.504326] enp1s6: Something Wicked happened! ffff.
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.529009] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.529229] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.529230] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.529484] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.529732] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.529735] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.531075] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.531295] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.531296] 100Mbps, half duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.531531] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.531751] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.531751] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.531977] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.532196] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.532196] 100Mbps, half duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.532422] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.532642] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.532642] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.532869] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.533089] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.533090] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.533214] enp1s6: Something Wicked happened! ffff.
                                                                                                                

                                                                                                                lspci (nics): enp0s7 + enp1s6

                                                                                                                00:07.0 Bridge: NVIDIA Corporation MCP61 Ethernet (rev a2)
                                                                                                                    Subsystem: Gigabyte Technology Co., Ltd MCP61 Ethernet
                                                                                                                    Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 24, NUMA node 0
                                                                                                                    Memory at fe02d000 (32-bit, non-prefetchable) [size=4K]
                                                                                                                    I/O ports at f000 [size=8]
                                                                                                                    Capabilities: [44] Power Management version 2
                                                                                                                    Capabilities: [50] MSI: Enable+ Count=1/8 Maskable+ 64bit+
                                                                                                                    Capabilities: [6c] HyperTransport: MSI Mapping Enable- Fixed+
                                                                                                                    Kernel driver in use: forcedeth
                                                                                                                    Kernel modules: forcedeth
                                                                                                                
                                                                                                                01:06.0 Ethernet controller: Sundance Technology Inc / IC Plus Corp IC Plus IP100A Integrated 10/100 Ethernet MAC + PHY (rev 31)
                                                                                                                    Flags: bus master, medium devsel, latency 0, IRQ 16, NUMA node 0
                                                                                                                    I/O ports at b000 [size=128]
                                                                                                                    Memory at fde00000 (32-bit, non-prefetchable) [size=512]
                                                                                                                    [virtual] Expansion ROM at fdf00000 [disabled] [size=64K]
                                                                                                                    Capabilities: [50] Power Management version 2
                                                                                                                    Kernel driver in use: sundance
                                                                                                                    Kernel modules: sundance
                                                                                                                

                                                                                                                ethtool

                                                                                                                Settings for enp0s7:
                                                                                                                    Supported ports: [ MII ]
                                                                                                                    Supported link modes:   10baseT/Half 10baseT/Full 
                                                                                                                                            100baseT/Half 100baseT/Full 
                                                                                                                                            1000baseT/Full 
                                                                                                                    Supported pause frame use: No
                                                                                                                    Supports auto-negotiation: Yes
                                                                                                                    Advertised link modes:  10baseT/Half 10baseT/Full 
                                                                                                                                            100baseT/Half 100baseT/Full 
                                                                                                                                            1000baseT/Full 
                                                                                                                    Advertised pause frame use: No
                                                                                                                    Advertised auto-negotiation: Yes
                                                                                                                    Speed: 100Mb/s
                                                                                                                    Duplex: Full
                                                                                                                    Port: MII
                                                                                                                    PHYAD: 3
                                                                                                                    Transceiver: external
                                                                                                                    Auto-negotiation: on
                                                                                                                    Supports Wake-on: g
                                                                                                                    Wake-on: d
                                                                                                                    Link detected: yes
                                                                                                                
                                                                                                                Settings for enp1s6:
                                                                                                                    Supported ports: [ TP MII ]
                                                                                                                    Supported link modes:   10baseT/Half 10baseT/Full 
                                                                                                                                            100baseT/Half 100baseT/Full 
                                                                                                                    Supported pause frame use: No
                                                                                                                    Supports auto-negotiation: Yes
                                                                                                                    Advertised link modes:  Not reported
                                                                                                                    Advertised pause frame use: No
                                                                                                                    Advertised auto-negotiation: No
                                                                                                                    Speed: 100Mb/s
                                                                                                                    Duplex: Full
                                                                                                                    Port: MII
                                                                                                                    PHYAD: 0
                                                                                                                    Transceiver: internal
                                                                                                                    Auto-negotiation: off
                                                                                                                    Supports Wake-on: pg
                                                                                                                    Wake-on: d
                                                                                                                    Current message level: 0x00000001 (1)
                                                                                                                                   drv
                                                                                                                    Link detected: yes
                                                                                                                

                                                                                                                ethtool statistics (enp1s6)

                                                                                                                NIC statistics:
                                                                                                                     tx_multiple_collisions: 26010
                                                                                                                     tx_single_collisions: 27540
                                                                                                                     tx_late_collisions: 5100
                                                                                                                     tx_deferred: 27030
                                                                                                                     tx_deferred_excessive: 26010
                                                                                                                     tx_aborted: 6630
                                                                                                                     tx_bcasts: 27030
                                                                                                                     rx_bcasts: 27032
                                                                                                                     tx_mcasts: 5610
                                                                                                                     rx_mcasts: 27285
                                                                                                                

                                                                                                                ip addr show

                                                                                                                1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
                                                                                                                    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
                                                                                                                    inet 127.0.0.1/8 scope host lo
                                                                                                                       valid_lft forever preferred_lft forever
                                                                                                                2: enp1s6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
                                                                                                                    link/ether 84:16:84:16:84:16 brd ff:ff:ff:ff:ff:ff
                                                                                                                    inet 192.168.1.1/24 brd 192.168.1.255 scope global enp1s6
                                                                                                                       valid_lft forever preferred_lft forever
                                                                                                                3: enp0s7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
                                                                                                                    link/ether 50:e5:49:64:f6:8b brd ff:ff:ff:ff:ff:ff
                                                                                                                    inet 192.168.0.12/24 brd 192.168.0.255 scope global enp0s7
                                                                                                                       valid_lft forever preferred_lft forever
                                                                                                                

                                                                                                                lsmod

                                                                                                                Module                  Size  Used by
                                                                                                                ip6table_filter        16384  0
                                                                                                                ip6_tables             28672  1 ip6table_filter
                                                                                                                xt_conntrack           16384  2
                                                                                                                nf_conntrack_netlink    36864  0
                                                                                                                nfnetlink              16384  6 nf_conntrack_netlink
                                                                                                                iptable_filter         16384  1
                                                                                                                ipt_MASQUERADE         16384  1
                                                                                                                nf_nat_masquerade_ipv4    16384  1 ipt_MASQUERADE
                                                                                                                iptable_nat            16384  1
                                                                                                                nf_conntrack_ipv4      16384  3
                                                                                                                nf_defrag_ipv4         16384  1 nf_conntrack_ipv4
                                                                                                                nf_nat_ipv4            16384  1 iptable_nat
                                                                                                                nf_nat                 24576  2 nf_nat_masquerade_ipv4,nf_nat_ipv4
                                                                                                                nf_conntrack          114688  6 nf_conntrack_ipv4,nf_conntrack_netlink,nf_nat_masquerade_ipv4,xt_conntrack,nf_nat_ipv4,nf_nat
                                                                                                                snd_hda_codec_realtek    90112  1
                                                                                                                snd_hda_codec_generic    69632  1 snd_hda_codec_realtek
                                                                                                                edac_mce_amd           28672  0
                                                                                                                edac_core              57344  0
                                                                                                                kvm                   598016  0
                                                                                                                evdev                  24576  2
                                                                                                                ppdev                  20480  0
                                                                                                                serio_raw              16384  0
                                                                                                                nouveau              1556480  1
                                                                                                                joydev                 20480  0
                                                                                                                snd_hda_intel          36864  0
                                                                                                                mxm_wmi                16384  1 nouveau
                                                                                                                snd_hda_codec         135168  3  snd_hda_intel,snd_hda_codec_generic,snd_hda_codec_realtek
                                                                                                                wmi                    16384  2 mxm_wmi,nouveau
                                                                                                                snd_hda_core           86016  4 snd_hda_intel,snd_hda_codec,snd_hda_codec_generic,snd_hda_codec_realtek
                                                                                                                video                  40960  1 nouveau
                                                                                                                snd_hwdep              16384  1 snd_hda_codec
                                                                                                                ttm                    98304  1 nouveau
                                                                                                                drm_kms_helper        155648  1 nouveau
                                                                                                                drm                   360448  4 nouveau,ttm,drm_kms_helper
                                                                                                                snd_pcm               110592  3 snd_hda_intel,snd_hda_codec,snd_hda_core
                                                                                                                irqbypass              16384  1 kvm
                                                                                                                sg                     32768  0
                                                                                                                pcspkr                 16384  0
                                                                                                                k10temp                16384  0
                                                                                                                parport_pc             28672  0
                                                                                                                parport                49152  2 parport_pc,ppdev
                                                                                                                i2c_algo_bit           16384  1 nouveau
                                                                                                                button                 16384  1 nouveau
                                                                                                                snd_timer              32768  1 snd_pcm
                                                                                                                snd                    86016  7 snd_hda_intel,snd_hwdep,snd_hda_codec,snd_timer,snd_hda_codec_generic,snd_hdacodec_realtek,snd_pcm
                                                                                                                soundcore              16384  1 snd
                                                                                                                acpi_cpufreq           20480  0
                                                                                                                ip_tables              24576  3 iptable_filter,iptable_nat
                                                                                                                x_tables               36864  6 ip_tables,iptable_filter,ipt_MASQUERADE,ip6table_filter,xt_conntrack,ip6_tables
                                                                                                                autofs4                40960  2
                                                                                                                ext4                  585728  2
                                                                                                                crc16                  16384  1 ext4
                                                                                                                jbd2                  106496  1 ext4
                                                                                                                fscrypto               28672  1 ext4
                                                                                                                ecb                    16384  0
                                                                                                                glue_helper            16384  0
                                                                                                                lrw                    16384  0
                                                                                                                gf128mul               16384  1 lrw
                                                                                                                ablk_helper            16384  0
                                                                                                                cryptd                 24576  1 ablk_helper
                                                                                                                aes_x86_64             20480  1
                                                                                                                mbcache                16384  3 ext4
                                                                                                                raid10                 49152  0
                                                                                                                raid456               106496  0
                                                                                                                async_raid6_recov      20480  1 raid456
                                                                                                                async_memcpy           16384  2 raid456,async_raid6_recov
                                                                                                                async_pq               16384  2 raid456,async_raid6_recov
                                                                                                                async_xor              16384  3 async_pq,raid456,async_raid6_recov
                                                                                                                async_tx               16384  5 async_xor,async_pq,raid456,async_memcpy,async_raid6_recov
                                                                                                                xor                    24576  1 async_xor
                                                                                                                raid6_pq              110592  3 async_pq,raid456,async_raid6_recov
                                                                                                                libcrc32c              16384  1 raid456
                                                                                                                crc32c_generic         16384  3
                                                                                                                raid0                  20480  0
                                                                                                                multipath              16384  0
                                                                                                                linear                 16384  0
                                                                                                                raid1                  36864  1
                                                                                                                md_mod                135168  6 raid1,raid10,multipath,linear,raid0,raid456
                                                                                                                sd_mod                 49152  7
                                                                                                                hid_generic            16384  0
                                                                                                                usbhid                 53248  0
                                                                                                                hid                   122880  2 hid_generic,usbhid
                                                                                                                ata_generic            16384  0
                                                                                                                ohci_pci               16384  0
                                                                                                                psmouse               135168  0
                                                                                                                sata_nv                28672  5
                                                                                                                forcedeth              69632  0
                                                                                                                ehci_pci               16384  0
                                                                                                                libata                249856  2 ata_generic,sata_nv
                                                                                                                ohci_hcd               53248  1 ohci_pci
                                                                                                                ehci_hcd               81920  1 ehci_pci
                                                                                                                scsi_mod              225280  3 sd_mod,libata,sg
                                                                                                                usbcore               253952  5 usbhid,ehci_hcd,ohci_pci,ohci_hcd,ehci_pci
                                                                                                                sundance               32768  0
                                                                                                                mii                    16384  1 sundance
                                                                                                                usb_common             16384  1 usbcore
                                                                                                                i2c_nforce2            16384  0
                                                                                                                

                                                                                                                Any guesses?

                                                                                                                Please, be patient: I’m a former SysAdmin (since years), nowadays Software Developer.

                                                                                                                share|improve this question

                                                                                                                • 1

                                                                                                                  Relevant webcomic to the above error: CommitStrip – It’s not working!

                                                                                                                  – Ferrybig
                                                                                                                  Jan 25 at 20:41

                                                                                                                8

                                                                                                                8

                                                                                                                8

                                                                                                                I’m configuring a GNU/Linux Router with Debian Stretch (9.7) and before rebooting the server, all traffic from one interface to another was going ok, but after that, I received a message like this (tty):

                                                                                                                enp1s6: Something Wicked happened! ffff.
                                                                                                                

                                                                                                                I have a host on the same switch and same network, for testing purposes, and basically, the LAN of the Router is not answering to echo requests.

                                                                                                                Here goes some information about the server.

                                                                                                                kernel.log

                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.494127] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.494127] 100Mbps, half duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.494254] enp1s6: Something Wicked happened! ffff.
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.497338] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.497557] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.497557] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.499986] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.500206] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.500206] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.500447] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.500667] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.500667] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.500895] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.501114] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.501114] 10Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.501341] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.501559] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.501559] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.503985] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.504204] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.504204] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.504326] enp1s6: Something Wicked happened! ffff.
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.529009] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.529229] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.529230] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.529484] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.529732] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.529735] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.531075] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.531295] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.531296] 100Mbps, half duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.531531] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.531751] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.531751] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.531977] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.532196] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.532196] 100Mbps, half duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.532422] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.532642] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.532642] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.532869] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.533089] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.533090] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.533214] enp1s6: Something Wicked happened! ffff.
                                                                                                                

                                                                                                                lspci (nics): enp0s7 + enp1s6

                                                                                                                00:07.0 Bridge: NVIDIA Corporation MCP61 Ethernet (rev a2)
                                                                                                                    Subsystem: Gigabyte Technology Co., Ltd MCP61 Ethernet
                                                                                                                    Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 24, NUMA node 0
                                                                                                                    Memory at fe02d000 (32-bit, non-prefetchable) [size=4K]
                                                                                                                    I/O ports at f000 [size=8]
                                                                                                                    Capabilities: [44] Power Management version 2
                                                                                                                    Capabilities: [50] MSI: Enable+ Count=1/8 Maskable+ 64bit+
                                                                                                                    Capabilities: [6c] HyperTransport: MSI Mapping Enable- Fixed+
                                                                                                                    Kernel driver in use: forcedeth
                                                                                                                    Kernel modules: forcedeth
                                                                                                                
                                                                                                                01:06.0 Ethernet controller: Sundance Technology Inc / IC Plus Corp IC Plus IP100A Integrated 10/100 Ethernet MAC + PHY (rev 31)
                                                                                                                    Flags: bus master, medium devsel, latency 0, IRQ 16, NUMA node 0
                                                                                                                    I/O ports at b000 [size=128]
                                                                                                                    Memory at fde00000 (32-bit, non-prefetchable) [size=512]
                                                                                                                    [virtual] Expansion ROM at fdf00000 [disabled] [size=64K]
                                                                                                                    Capabilities: [50] Power Management version 2
                                                                                                                    Kernel driver in use: sundance
                                                                                                                    Kernel modules: sundance
                                                                                                                

                                                                                                                ethtool

                                                                                                                Settings for enp0s7:
                                                                                                                    Supported ports: [ MII ]
                                                                                                                    Supported link modes:   10baseT/Half 10baseT/Full 
                                                                                                                                            100baseT/Half 100baseT/Full 
                                                                                                                                            1000baseT/Full 
                                                                                                                    Supported pause frame use: No
                                                                                                                    Supports auto-negotiation: Yes
                                                                                                                    Advertised link modes:  10baseT/Half 10baseT/Full 
                                                                                                                                            100baseT/Half 100baseT/Full 
                                                                                                                                            1000baseT/Full 
                                                                                                                    Advertised pause frame use: No
                                                                                                                    Advertised auto-negotiation: Yes
                                                                                                                    Speed: 100Mb/s
                                                                                                                    Duplex: Full
                                                                                                                    Port: MII
                                                                                                                    PHYAD: 3
                                                                                                                    Transceiver: external
                                                                                                                    Auto-negotiation: on
                                                                                                                    Supports Wake-on: g
                                                                                                                    Wake-on: d
                                                                                                                    Link detected: yes
                                                                                                                
                                                                                                                Settings for enp1s6:
                                                                                                                    Supported ports: [ TP MII ]
                                                                                                                    Supported link modes:   10baseT/Half 10baseT/Full 
                                                                                                                                            100baseT/Half 100baseT/Full 
                                                                                                                    Supported pause frame use: No
                                                                                                                    Supports auto-negotiation: Yes
                                                                                                                    Advertised link modes:  Not reported
                                                                                                                    Advertised pause frame use: No
                                                                                                                    Advertised auto-negotiation: No
                                                                                                                    Speed: 100Mb/s
                                                                                                                    Duplex: Full
                                                                                                                    Port: MII
                                                                                                                    PHYAD: 0
                                                                                                                    Transceiver: internal
                                                                                                                    Auto-negotiation: off
                                                                                                                    Supports Wake-on: pg
                                                                                                                    Wake-on: d
                                                                                                                    Current message level: 0x00000001 (1)
                                                                                                                                   drv
                                                                                                                    Link detected: yes
                                                                                                                

                                                                                                                ethtool statistics (enp1s6)

                                                                                                                NIC statistics:
                                                                                                                     tx_multiple_collisions: 26010
                                                                                                                     tx_single_collisions: 27540
                                                                                                                     tx_late_collisions: 5100
                                                                                                                     tx_deferred: 27030
                                                                                                                     tx_deferred_excessive: 26010
                                                                                                                     tx_aborted: 6630
                                                                                                                     tx_bcasts: 27030
                                                                                                                     rx_bcasts: 27032
                                                                                                                     tx_mcasts: 5610
                                                                                                                     rx_mcasts: 27285
                                                                                                                

                                                                                                                ip addr show

                                                                                                                1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
                                                                                                                    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
                                                                                                                    inet 127.0.0.1/8 scope host lo
                                                                                                                       valid_lft forever preferred_lft forever
                                                                                                                2: enp1s6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
                                                                                                                    link/ether 84:16:84:16:84:16 brd ff:ff:ff:ff:ff:ff
                                                                                                                    inet 192.168.1.1/24 brd 192.168.1.255 scope global enp1s6
                                                                                                                       valid_lft forever preferred_lft forever
                                                                                                                3: enp0s7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
                                                                                                                    link/ether 50:e5:49:64:f6:8b brd ff:ff:ff:ff:ff:ff
                                                                                                                    inet 192.168.0.12/24 brd 192.168.0.255 scope global enp0s7
                                                                                                                       valid_lft forever preferred_lft forever
                                                                                                                

                                                                                                                lsmod

                                                                                                                Module                  Size  Used by
                                                                                                                ip6table_filter        16384  0
                                                                                                                ip6_tables             28672  1 ip6table_filter
                                                                                                                xt_conntrack           16384  2
                                                                                                                nf_conntrack_netlink    36864  0
                                                                                                                nfnetlink              16384  6 nf_conntrack_netlink
                                                                                                                iptable_filter         16384  1
                                                                                                                ipt_MASQUERADE         16384  1
                                                                                                                nf_nat_masquerade_ipv4    16384  1 ipt_MASQUERADE
                                                                                                                iptable_nat            16384  1
                                                                                                                nf_conntrack_ipv4      16384  3
                                                                                                                nf_defrag_ipv4         16384  1 nf_conntrack_ipv4
                                                                                                                nf_nat_ipv4            16384  1 iptable_nat
                                                                                                                nf_nat                 24576  2 nf_nat_masquerade_ipv4,nf_nat_ipv4
                                                                                                                nf_conntrack          114688  6 nf_conntrack_ipv4,nf_conntrack_netlink,nf_nat_masquerade_ipv4,xt_conntrack,nf_nat_ipv4,nf_nat
                                                                                                                snd_hda_codec_realtek    90112  1
                                                                                                                snd_hda_codec_generic    69632  1 snd_hda_codec_realtek
                                                                                                                edac_mce_amd           28672  0
                                                                                                                edac_core              57344  0
                                                                                                                kvm                   598016  0
                                                                                                                evdev                  24576  2
                                                                                                                ppdev                  20480  0
                                                                                                                serio_raw              16384  0
                                                                                                                nouveau              1556480  1
                                                                                                                joydev                 20480  0
                                                                                                                snd_hda_intel          36864  0
                                                                                                                mxm_wmi                16384  1 nouveau
                                                                                                                snd_hda_codec         135168  3  snd_hda_intel,snd_hda_codec_generic,snd_hda_codec_realtek
                                                                                                                wmi                    16384  2 mxm_wmi,nouveau
                                                                                                                snd_hda_core           86016  4 snd_hda_intel,snd_hda_codec,snd_hda_codec_generic,snd_hda_codec_realtek
                                                                                                                video                  40960  1 nouveau
                                                                                                                snd_hwdep              16384  1 snd_hda_codec
                                                                                                                ttm                    98304  1 nouveau
                                                                                                                drm_kms_helper        155648  1 nouveau
                                                                                                                drm                   360448  4 nouveau,ttm,drm_kms_helper
                                                                                                                snd_pcm               110592  3 snd_hda_intel,snd_hda_codec,snd_hda_core
                                                                                                                irqbypass              16384  1 kvm
                                                                                                                sg                     32768  0
                                                                                                                pcspkr                 16384  0
                                                                                                                k10temp                16384  0
                                                                                                                parport_pc             28672  0
                                                                                                                parport                49152  2 parport_pc,ppdev
                                                                                                                i2c_algo_bit           16384  1 nouveau
                                                                                                                button                 16384  1 nouveau
                                                                                                                snd_timer              32768  1 snd_pcm
                                                                                                                snd                    86016  7 snd_hda_intel,snd_hwdep,snd_hda_codec,snd_timer,snd_hda_codec_generic,snd_hdacodec_realtek,snd_pcm
                                                                                                                soundcore              16384  1 snd
                                                                                                                acpi_cpufreq           20480  0
                                                                                                                ip_tables              24576  3 iptable_filter,iptable_nat
                                                                                                                x_tables               36864  6 ip_tables,iptable_filter,ipt_MASQUERADE,ip6table_filter,xt_conntrack,ip6_tables
                                                                                                                autofs4                40960  2
                                                                                                                ext4                  585728  2
                                                                                                                crc16                  16384  1 ext4
                                                                                                                jbd2                  106496  1 ext4
                                                                                                                fscrypto               28672  1 ext4
                                                                                                                ecb                    16384  0
                                                                                                                glue_helper            16384  0
                                                                                                                lrw                    16384  0
                                                                                                                gf128mul               16384  1 lrw
                                                                                                                ablk_helper            16384  0
                                                                                                                cryptd                 24576  1 ablk_helper
                                                                                                                aes_x86_64             20480  1
                                                                                                                mbcache                16384  3 ext4
                                                                                                                raid10                 49152  0
                                                                                                                raid456               106496  0
                                                                                                                async_raid6_recov      20480  1 raid456
                                                                                                                async_memcpy           16384  2 raid456,async_raid6_recov
                                                                                                                async_pq               16384  2 raid456,async_raid6_recov
                                                                                                                async_xor              16384  3 async_pq,raid456,async_raid6_recov
                                                                                                                async_tx               16384  5 async_xor,async_pq,raid456,async_memcpy,async_raid6_recov
                                                                                                                xor                    24576  1 async_xor
                                                                                                                raid6_pq              110592  3 async_pq,raid456,async_raid6_recov
                                                                                                                libcrc32c              16384  1 raid456
                                                                                                                crc32c_generic         16384  3
                                                                                                                raid0                  20480  0
                                                                                                                multipath              16384  0
                                                                                                                linear                 16384  0
                                                                                                                raid1                  36864  1
                                                                                                                md_mod                135168  6 raid1,raid10,multipath,linear,raid0,raid456
                                                                                                                sd_mod                 49152  7
                                                                                                                hid_generic            16384  0
                                                                                                                usbhid                 53248  0
                                                                                                                hid                   122880  2 hid_generic,usbhid
                                                                                                                ata_generic            16384  0
                                                                                                                ohci_pci               16384  0
                                                                                                                psmouse               135168  0
                                                                                                                sata_nv                28672  5
                                                                                                                forcedeth              69632  0
                                                                                                                ehci_pci               16384  0
                                                                                                                libata                249856  2 ata_generic,sata_nv
                                                                                                                ohci_hcd               53248  1 ohci_pci
                                                                                                                ehci_hcd               81920  1 ehci_pci
                                                                                                                scsi_mod              225280  3 sd_mod,libata,sg
                                                                                                                usbcore               253952  5 usbhid,ehci_hcd,ohci_pci,ohci_hcd,ehci_pci
                                                                                                                sundance               32768  0
                                                                                                                mii                    16384  1 sundance
                                                                                                                usb_common             16384  1 usbcore
                                                                                                                i2c_nforce2            16384  0
                                                                                                                

                                                                                                                Any guesses?

                                                                                                                Please, be patient: I’m a former SysAdmin (since years), nowadays Software Developer.

                                                                                                                share|improve this question

                                                                                                                I’m configuring a GNU/Linux Router with Debian Stretch (9.7) and before rebooting the server, all traffic from one interface to another was going ok, but after that, I received a message like this (tty):

                                                                                                                enp1s6: Something Wicked happened! ffff.
                                                                                                                

                                                                                                                I have a host on the same switch and same network, for testing purposes, and basically, the LAN of the Router is not answering to echo requests.

                                                                                                                Here goes some information about the server.

                                                                                                                kernel.log

                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.494127] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.494127] 100Mbps, half duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.494254] enp1s6: Something Wicked happened! ffff.
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.497338] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.497557] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.497557] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.499986] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.500206] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.500206] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.500447] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.500667] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.500667] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.500895] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.501114] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.501114] 10Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.501341] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.501559] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.501559] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.503985] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.504204] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.504204] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.504326] enp1s6: Something Wicked happened! ffff.
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.529009] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.529229] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.529230] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.529484] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.529732] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.529735] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.531075] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.531295] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.531296] 100Mbps, half duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.531531] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.531751] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.531751] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.531977] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.532196] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.532196] 100Mbps, half duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.532422] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.532642] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.532642] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.532869] enp1s6: Link up
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.533089] enp1s6: Link changed: 
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.533090] 100Mbps, full duplex
                                                                                                                Jan 25 08:58:02 server001 kernel: [25060.533214] enp1s6: Something Wicked happened! ffff.
                                                                                                                

                                                                                                                lspci (nics): enp0s7 + enp1s6

                                                                                                                00:07.0 Bridge: NVIDIA Corporation MCP61 Ethernet (rev a2)
                                                                                                                    Subsystem: Gigabyte Technology Co., Ltd MCP61 Ethernet
                                                                                                                    Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 24, NUMA node 0
                                                                                                                    Memory at fe02d000 (32-bit, non-prefetchable) [size=4K]
                                                                                                                    I/O ports at f000 [size=8]
                                                                                                                    Capabilities: [44] Power Management version 2
                                                                                                                    Capabilities: [50] MSI: Enable+ Count=1/8 Maskable+ 64bit+
                                                                                                                    Capabilities: [6c] HyperTransport: MSI Mapping Enable- Fixed+
                                                                                                                    Kernel driver in use: forcedeth
                                                                                                                    Kernel modules: forcedeth
                                                                                                                
                                                                                                                01:06.0 Ethernet controller: Sundance Technology Inc / IC Plus Corp IC Plus IP100A Integrated 10/100 Ethernet MAC + PHY (rev 31)
                                                                                                                    Flags: bus master, medium devsel, latency 0, IRQ 16, NUMA node 0
                                                                                                                    I/O ports at b000 [size=128]
                                                                                                                    Memory at fde00000 (32-bit, non-prefetchable) [size=512]
                                                                                                                    [virtual] Expansion ROM at fdf00000 [disabled] [size=64K]
                                                                                                                    Capabilities: [50] Power Management version 2
                                                                                                                    Kernel driver in use: sundance
                                                                                                                    Kernel modules: sundance
                                                                                                                

                                                                                                                ethtool

                                                                                                                Settings for enp0s7:
                                                                                                                    Supported ports: [ MII ]
                                                                                                                    Supported link modes:   10baseT/Half 10baseT/Full 
                                                                                                                                            100baseT/Half 100baseT/Full 
                                                                                                                                            1000baseT/Full 
                                                                                                                    Supported pause frame use: No
                                                                                                                    Supports auto-negotiation: Yes
                                                                                                                    Advertised link modes:  10baseT/Half 10baseT/Full 
                                                                                                                                            100baseT/Half 100baseT/Full 
                                                                                                                                            1000baseT/Full 
                                                                                                                    Advertised pause frame use: No
                                                                                                                    Advertised auto-negotiation: Yes
                                                                                                                    Speed: 100Mb/s
                                                                                                                    Duplex: Full
                                                                                                                    Port: MII
                                                                                                                    PHYAD: 3
                                                                                                                    Transceiver: external
                                                                                                                    Auto-negotiation: on
                                                                                                                    Supports Wake-on: g
                                                                                                                    Wake-on: d
                                                                                                                    Link detected: yes
                                                                                                                
                                                                                                                Settings for enp1s6:
                                                                                                                    Supported ports: [ TP MII ]
                                                                                                                    Supported link modes:   10baseT/Half 10baseT/Full 
                                                                                                                                            100baseT/Half 100baseT/Full 
                                                                                                                    Supported pause frame use: No
                                                                                                                    Supports auto-negotiation: Yes
                                                                                                                    Advertised link modes:  Not reported
                                                                                                                    Advertised pause frame use: No
                                                                                                                    Advertised auto-negotiation: No
                                                                                                                    Speed: 100Mb/s
                                                                                                                    Duplex: Full
                                                                                                                    Port: MII
                                                                                                                    PHYAD: 0
                                                                                                                    Transceiver: internal
                                                                                                                    Auto-negotiation: off
                                                                                                                    Supports Wake-on: pg
                                                                                                                    Wake-on: d
                                                                                                                    Current message level: 0x00000001 (1)
                                                                                                                                   drv
                                                                                                                    Link detected: yes
                                                                                                                

                                                                                                                ethtool statistics (enp1s6)

                                                                                                                NIC statistics:
                                                                                                                     tx_multiple_collisions: 26010
                                                                                                                     tx_single_collisions: 27540
                                                                                                                     tx_late_collisions: 5100
                                                                                                                     tx_deferred: 27030
                                                                                                                     tx_deferred_excessive: 26010
                                                                                                                     tx_aborted: 6630
                                                                                                                     tx_bcasts: 27030
                                                                                                                     rx_bcasts: 27032
                                                                                                                     tx_mcasts: 5610
                                                                                                                     rx_mcasts: 27285
                                                                                                                

                                                                                                                ip addr show

                                                                                                                1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
                                                                                                                    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
                                                                                                                    inet 127.0.0.1/8 scope host lo
                                                                                                                       valid_lft forever preferred_lft forever
                                                                                                                2: enp1s6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
                                                                                                                    link/ether 84:16:84:16:84:16 brd ff:ff:ff:ff:ff:ff
                                                                                                                    inet 192.168.1.1/24 brd 192.168.1.255 scope global enp1s6
                                                                                                                       valid_lft forever preferred_lft forever
                                                                                                                3: enp0s7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
                                                                                                                    link/ether 50:e5:49:64:f6:8b brd ff:ff:ff:ff:ff:ff
                                                                                                                    inet 192.168.0.12/24 brd 192.168.0.255 scope global enp0s7
                                                                                                                       valid_lft forever preferred_lft forever
                                                                                                                

                                                                                                                lsmod

                                                                                                                Module                  Size  Used by
                                                                                                                ip6table_filter        16384  0
                                                                                                                ip6_tables             28672  1 ip6table_filter
                                                                                                                xt_conntrack           16384  2
                                                                                                                nf_conntrack_netlink    36864  0
                                                                                                                nfnetlink              16384  6 nf_conntrack_netlink
                                                                                                                iptable_filter         16384  1
                                                                                                                ipt_MASQUERADE         16384  1
                                                                                                                nf_nat_masquerade_ipv4    16384  1 ipt_MASQUERADE
                                                                                                                iptable_nat            16384  1
                                                                                                                nf_conntrack_ipv4      16384  3
                                                                                                                nf_defrag_ipv4         16384  1 nf_conntrack_ipv4
                                                                                                                nf_nat_ipv4            16384  1 iptable_nat
                                                                                                                nf_nat                 24576  2 nf_nat_masquerade_ipv4,nf_nat_ipv4
                                                                                                                nf_conntrack          114688  6 nf_conntrack_ipv4,nf_conntrack_netlink,nf_nat_masquerade_ipv4,xt_conntrack,nf_nat_ipv4,nf_nat
                                                                                                                snd_hda_codec_realtek    90112  1
                                                                                                                snd_hda_codec_generic    69632  1 snd_hda_codec_realtek
                                                                                                                edac_mce_amd           28672  0
                                                                                                                edac_core              57344  0
                                                                                                                kvm                   598016  0
                                                                                                                evdev                  24576  2
                                                                                                                ppdev                  20480  0
                                                                                                                serio_raw              16384  0
                                                                                                                nouveau              1556480  1
                                                                                                                joydev                 20480  0
                                                                                                                snd_hda_intel          36864  0
                                                                                                                mxm_wmi                16384  1 nouveau
                                                                                                                snd_hda_codec         135168  3  snd_hda_intel,snd_hda_codec_generic,snd_hda_codec_realtek
                                                                                                                wmi                    16384  2 mxm_wmi,nouveau
                                                                                                                snd_hda_core           86016  4 snd_hda_intel,snd_hda_codec,snd_hda_codec_generic,snd_hda_codec_realtek
                                                                                                                video                  40960  1 nouveau
                                                                                                                snd_hwdep              16384  1 snd_hda_codec
                                                                                                                ttm                    98304  1 nouveau
                                                                                                                drm_kms_helper        155648  1 nouveau
                                                                                                                drm                   360448  4 nouveau,ttm,drm_kms_helper
                                                                                                                snd_pcm               110592  3 snd_hda_intel,snd_hda_codec,snd_hda_core
                                                                                                                irqbypass              16384  1 kvm
                                                                                                                sg                     32768  0
                                                                                                                pcspkr                 16384  0
                                                                                                                k10temp                16384  0
                                                                                                                parport_pc             28672  0
                                                                                                                parport                49152  2 parport_pc,ppdev
                                                                                                                i2c_algo_bit           16384  1 nouveau
                                                                                                                button                 16384  1 nouveau
                                                                                                                snd_timer              32768  1 snd_pcm
                                                                                                                snd                    86016  7 snd_hda_intel,snd_hwdep,snd_hda_codec,snd_timer,snd_hda_codec_generic,snd_hdacodec_realtek,snd_pcm
                                                                                                                soundcore              16384  1 snd
                                                                                                                acpi_cpufreq           20480  0
                                                                                                                ip_tables              24576  3 iptable_filter,iptable_nat
                                                                                                                x_tables               36864  6 ip_tables,iptable_filter,ipt_MASQUERADE,ip6table_filter,xt_conntrack,ip6_tables
                                                                                                                autofs4                40960  2
                                                                                                                ext4                  585728  2
                                                                                                                crc16                  16384  1 ext4
                                                                                                                jbd2                  106496  1 ext4
                                                                                                                fscrypto               28672  1 ext4
                                                                                                                ecb                    16384  0
                                                                                                                glue_helper            16384  0
                                                                                                                lrw                    16384  0
                                                                                                                gf128mul               16384  1 lrw
                                                                                                                ablk_helper            16384  0
                                                                                                                cryptd                 24576  1 ablk_helper
                                                                                                                aes_x86_64             20480  1
                                                                                                                mbcache                16384  3 ext4
                                                                                                                raid10                 49152  0
                                                                                                                raid456               106496  0
                                                                                                                async_raid6_recov      20480  1 raid456
                                                                                                                async_memcpy           16384  2 raid456,async_raid6_recov
                                                                                                                async_pq               16384  2 raid456,async_raid6_recov
                                                                                                                async_xor              16384  3 async_pq,raid456,async_raid6_recov
                                                                                                                async_tx               16384  5 async_xor,async_pq,raid456,async_memcpy,async_raid6_recov
                                                                                                                xor                    24576  1 async_xor
                                                                                                                raid6_pq              110592  3 async_pq,raid456,async_raid6_recov
                                                                                                                libcrc32c              16384  1 raid456
                                                                                                                crc32c_generic         16384  3
                                                                                                                raid0                  20480  0
                                                                                                                multipath              16384  0
                                                                                                                linear                 16384  0
                                                                                                                raid1                  36864  1
                                                                                                                md_mod                135168  6 raid1,raid10,multipath,linear,raid0,raid456
                                                                                                                sd_mod                 49152  7
                                                                                                                hid_generic            16384  0
                                                                                                                usbhid                 53248  0
                                                                                                                hid                   122880  2 hid_generic,usbhid
                                                                                                                ata_generic            16384  0
                                                                                                                ohci_pci               16384  0
                                                                                                                psmouse               135168  0
                                                                                                                sata_nv                28672  5
                                                                                                                forcedeth              69632  0
                                                                                                                ehci_pci               16384  0
                                                                                                                libata                249856  2 ata_generic,sata_nv
                                                                                                                ohci_hcd               53248  1 ohci_pci
                                                                                                                ehci_hcd               81920  1 ehci_pci
                                                                                                                scsi_mod              225280  3 sd_mod,libata,sg
                                                                                                                usbcore               253952  5 usbhid,ehci_hcd,ohci_pci,ohci_hcd,ehci_pci
                                                                                                                sundance               32768  0
                                                                                                                mii                    16384  1 sundance
                                                                                                                usb_common             16384  1 usbcore
                                                                                                                i2c_nforce2            16384  0
                                                                                                                

                                                                                                                Any guesses?

                                                                                                                Please, be patient: I’m a former SysAdmin (since years), nowadays Software Developer.

                                                                                                                debian linux-networking linux-kernel icmp ethtool

                                                                                                                share|improve this question

                                                                                                                share|improve this question

                                                                                                                share|improve this question

                                                                                                                share|improve this question

                                                                                                                edited Jan 25 at 17:53

                                                                                                                ivanleoncz

                                                                                                                asked Jan 25 at 16:37

                                                                                                                ivanleonczivanleoncz

                                                                                                                4362627

                                                                                                                4362627

                                                                                                                • 1

                                                                                                                  Relevant webcomic to the above error: CommitStrip – It’s not working!

                                                                                                                  – Ferrybig
                                                                                                                  Jan 25 at 20:41

                                                                                                                • 1

                                                                                                                  Relevant webcomic to the above error: CommitStrip – It’s not working!

                                                                                                                  – Ferrybig
                                                                                                                  Jan 25 at 20:41

                                                                                                                1

                                                                                                                1

                                                                                                                Relevant webcomic to the above error: CommitStrip – It’s not working!

                                                                                                                – Ferrybig
                                                                                                                Jan 25 at 20:41

                                                                                                                Relevant webcomic to the above error: CommitStrip – It’s not working!

                                                                                                                – Ferrybig
                                                                                                                Jan 25 at 20:41

                                                                                                                2 Answers
                                                                                                                2

                                                                                                                active

                                                                                                                oldest

                                                                                                                votes

                                                                                                                7

                                                                                                                It appears your Sundance 10/100 NIC is old, perhaps too old…

                                                                                                                See https://bugzilla.redhat.com/show_bug.cgi?id=748973 (f16 Sundance 10/100 Ethernet module crashes when plugged into gigabit router)

                                                                                                                share|improve this answer

                                                                                                                • 2

                                                                                                                  You bet, dude. It’s quite old, supporting 10/100, by the way. I just putted other NIC here and boom, it started to work normally, without changing a single line in any config file, not even fighting with Kernel modules. I’ll stay with this NIC here (chipset Accton Technology Corp). Thanks.

                                                                                                                  – ivanleoncz
                                                                                                                  Jan 25 at 18:04

                                                                                                                3

                                                                                                                Per your ethtool output, I notice enp1s6 is not reporting as supporting auto-negotiation. Is that disabled on the device/port you are connecting too? If possible adjust the device you are connecting with to have auto-negotiation enabled. If you don’t have access to that device, or you don’t want to change it, then you may have to force a speed/duplix on enp1s6.

                                                                                                                share|improve this answer

                                                                                                                • Ok. Makes sense. But, how do I do that (force auto-negotiation on enp1s6)? By the way, I removed this NIC and installed another, which has auto-negotiation by default (according to ethtool output for the new NIC), and everything is working fine with the “Router”: with my other host on the LAN side, I can ping the LAN NIC of the router, also reaching the Internet. Thanks.

                                                                                                                  – ivanleoncz
                                                                                                                  Jan 25 at 17:52

                                                                                                                Your Answer

                                                                                                                StackExchange.ready(function() {
                                                                                                                var channelOptions = {
                                                                                                                tags: “”.split(” “),
                                                                                                                id: “2”
                                                                                                                };
                                                                                                                initTagRenderer(“”.split(” “), “”.split(” “), channelOptions);

                                                                                                                StackExchange.using(“externalEditor”, function() {
                                                                                                                // Have to fire editor after snippets, if snippets enabled
                                                                                                                if (StackExchange.settings.snippets.snippetsEnabled) {
                                                                                                                StackExchange.using(“snippets”, function() {
                                                                                                                createEditor();
                                                                                                                });
                                                                                                                }
                                                                                                                else {
                                                                                                                createEditor();
                                                                                                                }
                                                                                                                });

                                                                                                                function createEditor() {
                                                                                                                StackExchange.prepareEditor({
                                                                                                                heartbeatType: ‘answer’,
                                                                                                                autoActivateHeartbeat: false,
                                                                                                                convertImagesToLinks: true,
                                                                                                                noModals: true,
                                                                                                                showLowRepImageUploadWarning: true,
                                                                                                                reputationToPostImages: 10,
                                                                                                                bindNavPrevention: true,
                                                                                                                postfix: “”,
                                                                                                                imageUploader: {
                                                                                                                brandingHtml: “Powered by u003ca class=”icon-imgur-white” href=”https://imgur.com/”u003eu003c/au003e”,
                                                                                                                contentPolicyHtml: “User contributions licensed under u003ca href=”https://creativecommons.org/licenses/by-sa/3.0/”u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href=”https://stackoverflow.com/legal/content-policy”u003e(content policy)u003c/au003e”,
                                                                                                                allowUrls: true
                                                                                                                },
                                                                                                                onDemand: true,
                                                                                                                discardSelector: “.discard-answer”
                                                                                                                ,immediatelyShowMarkdownHelp:true
                                                                                                                });

                                                                                                                }
                                                                                                                });

                                                                                                                draft saved
                                                                                                                draft discarded

                                                                                                                StackExchange.ready(
                                                                                                                function () {
                                                                                                                StackExchange.openid.initPostLogin(‘.new-post-login’, ‘https%3a%2f%2fserverfault.com%2fquestions%2f950802%2fnic-something-wicked-happened-ffff%23new-answer’, ‘question_page’);
                                                                                                                }
                                                                                                                );

                                                                                                                Post as a guest

                                                                                                                Required, but never shown

                                                                                                                2 Answers
                                                                                                                2

                                                                                                                active

                                                                                                                oldest

                                                                                                                votes

                                                                                                                2 Answers
                                                                                                                2

                                                                                                                active

                                                                                                                oldest

                                                                                                                votes

                                                                                                                active

                                                                                                                oldest

                                                                                                                votes

                                                                                                                active

                                                                                                                oldest

                                                                                                                votes

                                                                                                                7

                                                                                                                It appears your Sundance 10/100 NIC is old, perhaps too old…

                                                                                                                See https://bugzilla.redhat.com/show_bug.cgi?id=748973 (f16 Sundance 10/100 Ethernet module crashes when plugged into gigabit router)

                                                                                                                share|improve this answer

                                                                                                                • 2

                                                                                                                  You bet, dude. It’s quite old, supporting 10/100, by the way. I just putted other NIC here and boom, it started to work normally, without changing a single line in any config file, not even fighting with Kernel modules. I’ll stay with this NIC here (chipset Accton Technology Corp). Thanks.

                                                                                                                  – ivanleoncz
                                                                                                                  Jan 25 at 18:04

                                                                                                                7

                                                                                                                It appears your Sundance 10/100 NIC is old, perhaps too old…

                                                                                                                See https://bugzilla.redhat.com/show_bug.cgi?id=748973 (f16 Sundance 10/100 Ethernet module crashes when plugged into gigabit router)

                                                                                                                share|improve this answer

                                                                                                                • 2

                                                                                                                  You bet, dude. It’s quite old, supporting 10/100, by the way. I just putted other NIC here and boom, it started to work normally, without changing a single line in any config file, not even fighting with Kernel modules. I’ll stay with this NIC here (chipset Accton Technology Corp). Thanks.

                                                                                                                  – ivanleoncz
                                                                                                                  Jan 25 at 18:04

                                                                                                                7

                                                                                                                7

                                                                                                                7

                                                                                                                It appears your Sundance 10/100 NIC is old, perhaps too old…

                                                                                                                See https://bugzilla.redhat.com/show_bug.cgi?id=748973 (f16 Sundance 10/100 Ethernet module crashes when plugged into gigabit router)

                                                                                                                share|improve this answer

                                                                                                                It appears your Sundance 10/100 NIC is old, perhaps too old…

                                                                                                                See https://bugzilla.redhat.com/show_bug.cgi?id=748973 (f16 Sundance 10/100 Ethernet module crashes when plugged into gigabit router)

                                                                                                                share|improve this answer

                                                                                                                share|improve this answer

                                                                                                                share|improve this answer

                                                                                                                edited Jan 26 at 0:12

                                                                                                                200_success

                                                                                                                4,14011840

                                                                                                                4,14011840

                                                                                                                answered Jan 25 at 17:59

                                                                                                                FreddyFreddy

                                                                                                                5918

                                                                                                                5918

                                                                                                                • 2

                                                                                                                  You bet, dude. It’s quite old, supporting 10/100, by the way. I just putted other NIC here and boom, it started to work normally, without changing a single line in any config file, not even fighting with Kernel modules. I’ll stay with this NIC here (chipset Accton Technology Corp). Thanks.

                                                                                                                  – ivanleoncz
                                                                                                                  Jan 25 at 18:04

                                                                                                                • 2

                                                                                                                  You bet, dude. It’s quite old, supporting 10/100, by the way. I just putted other NIC here and boom, it started to work normally, without changing a single line in any config file, not even fighting with Kernel modules. I’ll stay with this NIC here (chipset Accton Technology Corp). Thanks.

                                                                                                                  – ivanleoncz
                                                                                                                  Jan 25 at 18:04

                                                                                                                2

                                                                                                                2

                                                                                                                You bet, dude. It’s quite old, supporting 10/100, by the way. I just putted other NIC here and boom, it started to work normally, without changing a single line in any config file, not even fighting with Kernel modules. I’ll stay with this NIC here (chipset Accton Technology Corp). Thanks.

                                                                                                                – ivanleoncz
                                                                                                                Jan 25 at 18:04

                                                                                                                You bet, dude. It’s quite old, supporting 10/100, by the way. I just putted other NIC here and boom, it started to work normally, without changing a single line in any config file, not even fighting with Kernel modules. I’ll stay with this NIC here (chipset Accton Technology Corp). Thanks.

                                                                                                                – ivanleoncz
                                                                                                                Jan 25 at 18:04

                                                                                                                3

                                                                                                                Per your ethtool output, I notice enp1s6 is not reporting as supporting auto-negotiation. Is that disabled on the device/port you are connecting too? If possible adjust the device you are connecting with to have auto-negotiation enabled. If you don’t have access to that device, or you don’t want to change it, then you may have to force a speed/duplix on enp1s6.

                                                                                                                share|improve this answer

                                                                                                                • Ok. Makes sense. But, how do I do that (force auto-negotiation on enp1s6)? By the way, I removed this NIC and installed another, which has auto-negotiation by default (according to ethtool output for the new NIC), and everything is working fine with the “Router”: with my other host on the LAN side, I can ping the LAN NIC of the router, also reaching the Internet. Thanks.

                                                                                                                  – ivanleoncz
                                                                                                                  Jan 25 at 17:52

                                                                                                                3

                                                                                                                Per your ethtool output, I notice enp1s6 is not reporting as supporting auto-negotiation. Is that disabled on the device/port you are connecting too? If possible adjust the device you are connecting with to have auto-negotiation enabled. If you don’t have access to that device, or you don’t want to change it, then you may have to force a speed/duplix on enp1s6.

                                                                                                                share|improve this answer

                                                                                                                • Ok. Makes sense. But, how do I do that (force auto-negotiation on enp1s6)? By the way, I removed this NIC and installed another, which has auto-negotiation by default (according to ethtool output for the new NIC), and everything is working fine with the “Router”: with my other host on the LAN side, I can ping the LAN NIC of the router, also reaching the Internet. Thanks.

                                                                                                                  – ivanleoncz
                                                                                                                  Jan 25 at 17:52

                                                                                                                3

                                                                                                                3

                                                                                                                3

                                                                                                                Per your ethtool output, I notice enp1s6 is not reporting as supporting auto-negotiation. Is that disabled on the device/port you are connecting too? If possible adjust the device you are connecting with to have auto-negotiation enabled. If you don’t have access to that device, or you don’t want to change it, then you may have to force a speed/duplix on enp1s6.

                                                                                                                share|improve this answer

                                                                                                                Per your ethtool output, I notice enp1s6 is not reporting as supporting auto-negotiation. Is that disabled on the device/port you are connecting too? If possible adjust the device you are connecting with to have auto-negotiation enabled. If you don’t have access to that device, or you don’t want to change it, then you may have to force a speed/duplix on enp1s6.

                                                                                                                share|improve this answer