This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM335x most stable Linux kernel

We have a customer who is currently using a Linux Kernel from the Sitara-SDK 8 (v3.14.26) on TI-AM335x based hardware. The customer ran into an issue which we traced down and has been fixed by TI with commit-dd1af75f2773ffb2060aaad51e04d23fce0cddd1.

As Sitara-SDK8 has such critical bugs, we would like to advice the customer to upgrade to a more stable kernel. Which kernel version would you suggest the customer to upgrade to?

If the customer wants to stay on the ti-linux-3.14.y branch (git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git):
- latest "TI Processor SDK Linux 01.00.00.xx" kernel, which is tag ti2014.10.03 (kernel v3.14.43)
- latest TI-tag on the ti-linux-3.14.y branch, which is tag ti2014.10.04 (kernel v3.14.67). However this tag was never part of a "TI Processor SDK".
- the tip of the ti-linux-3.14.y branch, which merges the latest linux-stable and latest TI stable branch (kernel v3.14.73). However this is not a tagged version.

If the customer is willing to upgrade to a later kernel branch:
- latest "TI Processor SDK" (kernel 4.4.12 for 03.00.00.00). Is this more stable than the ti-linux-3.14.y branch regarding AM335x hardware?
- is mainline-Linux a stable option?

Thanks!

  • I will ask the software team to comment.
  • Hi Henry,

    Henri Roosen said:
    Which kernel version would you suggest the customer to upgrade to?

    I'd recommend the latest kernel released (from SDK3.0): kernel 4.4.12, because future efforts will be on that kernel, at least until next sdk version (with newer kernel version) is released. As opposed to lowering the effort to fix issues in kernel 3.14. 

    Henri Roosen said:
    - latest "TI Processor SDK" (kernel 4.4.12 for 03.00.00.00). Is this more stable than the ti-linux-3.14.y branch regarding AM335x hardware?

    There have been quite a lot of fixes between kernel 3.14 & kernel 4.4, so yes, I'd say it's more stable than 3.14. You can track the changes in the SDK released notes back to SDK08. 

    Henri Roosen said:
    is mainline-Linux a stable option?

     

    No, this is not officially supported by TI. If they decide to move to mainline, they'll have to rely on community support & limited support by TI. 

    Hope this helps. 

    Best Regards, 
    Yordan

  • Hi Yordan,

    Thank you for your quick response!

    If the customer wants to stay on the 3.14 branch (ti-linux-3.14.y), which version should we take (see first post): tag "ti2014.10.03", tag "ti2014.10.04" or the tip of the branch?

    Actually I should generalize the question: will TI-maintain a "maturity branch" which merges known issues and security fixes for a specific kernel major.minor-y version? Even when the latest "Processor SDK" has already switched to a different major.minor-y version.

    Of course for new products, the latest "Processor SDK" will be chosen, but for existing products it is not always possible to keep up with the latest "Processor SDK".

    I'm hoping to get an overview in how TI will be maintaining Linux kernel versions. Embedded products will need support for years, so it's important to know if, and/or which, TI-kernel branches will be maintained with fixes for known issues or security updates, how well they are tested and what the known issues are.

    This is important information also when we would switch to Kernel 4.4-y.

    Thanks!
  • Hi,

    Henri Roosen said:
    which version should we take (see first post): tag "ti2014.10.03", tag "ti2014.10.04" or the tip of the branch?

    I'd say the tip of the branch, because there are updates which fix some known issues (as you already noted). 

    Henri Roosen said:
    Actually I should generalize the question: will TI-maintain a "maturity branch" which merges known issues and security fixes for a specific kernel major.minor-y version?

    Henri Roosen said:

    I'm hoping to get an overview in how TI will be maintaining Linux kernel versions. Embedded products will need support for years, so it's important to know if, and/or which, TI-kernel branches will be maintained with fixes for known issues or security updates, how well they are tested and what the known issues are.

    I don't have such information. I'll contact the design team to elaborate on this. 


    Best Regards, 

    Yordan

  • I'll give you my two cents...

    Henri Roosen said:
    If the customer wants to stay on the ti-linux-3.14.y branch (git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git):
    - latest "TI Processor SDK Linux 01.00.00.xx" kernel, which is tag ti2014.10.03 (kernel v3.14.43)
    - latest TI-tag on the ti-linux-3.14.y branch, which is tag ti2014.10.04 (kernel v3.14.67). However this tag was never part of a "TI Processor SDK".
    - the tip of the ti-linux-3.14.y branch, which merges the latest linux-stable and latest TI stable branch (kernel v3.14.73). However this is not a tagged version.

    Before any major migration effort is undertaken, I think one of these options should be explored.  Personally, I would just try the tip of that ti-linux-3.14.y branch.

    Henri Roosen said:
    If the customer is willing to upgrade to a later kernel branch:
    - latest "TI Processor SDK" (kernel 4.4.12 for 03.00.00.00). Is this more stable than the ti-linux-3.14.y branch regarding AM335x hardware?
    - is mainline-Linux a stable option?

    Personally, I think that the 3.14 branch is likely more stable at this moment given the years of time we've had customers pounding on it.  Eventually I expect the 4.4 kernel to overtake the 3.14 kernel in terms of stability as we get more hours logged and more bug fixes committed.

  • Henri Roosen said:
    Actually I should generalize the question: will TI-maintain a "maturity branch" which merges known issues and security fixes for a specific kernel major.minor-y version? Even when the latest "Processor SDK" has already switched to a different major.minor-y version.

    Yes, you already mentioned it:

    http://git.ti.com/cgit/cgit.cgi/ti-linux-kernel/ti-linux-kernel.git/log/?h=ti-linux-3.14.y

    Or for the newer kernel:

    http://git.ti.com/cgit/cgit.cgi/ti-linux-kernel/ti-linux-kernel.git/log/?h=ti-linux-4.4.y

    However, I want to set expectations appropriately.  We will generally support a given kernel version for one year.  In the case of the 3.14 kernel it has actually gone on even longer, but that's not something we will promise/guarantee.

    We have selected our kernel versions to coincide with Greg Kroah-Hartman's LTS kernel releases in order to facilitate your ability to pull fixes, etc.  However, unless you have a rather large and mature Linux development team, I don't think even that is feasible or desirable for most customers.  It is a lot of effort to keep up with the constant churn of patches in the Linux community and for that reason there exist commercial Linux vendors.  Based on the discussion here I strongly recommend that you have some discussions with various commercial vendors to see if you can find one that's a good fit.  It's well worth the cost as it enables your developers to focus on your own product and its value-add, rather than consuming your engineering with keeping up with the Linux community.