Skip to content
This repository has been archived by the owner on Apr 13, 2024. It is now read-only.

add arm64 LTS targets #40

Merged
merged 3 commits into from
Nov 13, 2018
Merged

add arm64 LTS targets #40

merged 3 commits into from
Nov 13, 2018

Conversation

nickdesaulniers
Copy link
Member

this obviously conflicts with #39 , so will rebase on top.

@Ajs1984 and I discussed today seeing what was broken in these branches in stable, and sending the relevant backports to @gregkh rather than landing them in Android common kernels, since they merge down from LTS anyways.

We should move these to cron jobs (post submit), but doing so now would make it so that these new targets aren't tested. Once we get a run, I'll either make the cron, or comment them out (if they're super broken) with a patch on top of this PR.

@nickdesaulniers
Copy link
Member Author

Fixes #35

.travis.yml Outdated Show resolved Hide resolved
@nickdesaulniers nickdesaulniers force-pushed the config branch 2 times, most recently from 9241f4c to c0aea26 Compare November 10, 2018 05:23
@nickdesaulniers
Copy link
Member Author

Not sure if 4.19 is also an LTS branch? Seems kind of close to 4.18, though?

.travis.yml Outdated Show resolved Hide resolved
@nickdesaulniers
Copy link
Member Author

needs a rebase on #41 too.

@groeck
Copy link

groeck commented Nov 10, 2018

Not sure if 4.19 is also an LTS branch? Seems kind of close to 4.18, though?

4.19 is LTS. 4.18 isn't.

@nickdesaulniers
Copy link
Member Author

@groeck do you know who maintains: https://www.kernel.org/ ? It says 4.18 AND 4.19 are stable.

Thanks for the the clarification though, I'll fix that in my patch.

@groeck
Copy link

groeck commented Nov 10, 2018

@groeck do you know who maintains: https://www.kernel.org/ ? It says 4.18 AND 4.19 are stable.

Misunderstanding. "stable" does not mean "longterm". I assume they'll update the 4.19 tag to "longterm" in due time, maybe after 4.18 is marked EOL. If you search for "Linux LTS 4.19" you'll find references to 4.19 being the next longterm stable release.

@nathanchance
Copy link
Member

nathanchance commented Nov 10, 2018

It's listed as an LTS kernel on the releases page: https://www.kernel.org/category/releases.html

There's an FAQ about why LTS is marked as stable on the front page: https://www.kernel.org/category/faq.html

driver.sh Outdated Show resolved Hide resolved
.travis.yml Outdated
env: ARCH=arm64 REPO=4-18
- name: "ARCH=arm64 REPO=4-14"
env: ARCH=arm64 REPO=4-14
- name: "ARCH=arm64 REPO=4-9"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should 4.4 and 4.9 be added just yet since support is not upstream yet?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess it's a question of having things wired up, even if they're red on day one. Depends on what we want to do if/when a target goes red; do we want to disable it, or let every cron be red until a fix lands?

I'd prefer to have some automated testing so we can collect warnings from the logs. Maybe we can settle the question about regressions later.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd argue we should keep everything green. Since 4.14 and 4.19 should work fine and the case block below is super easy to extend with new version (and 4.4 and 4.9 can even remain), I suggest we keep 4.4 and 4.9 off of the matrix until the core Clang support is added to those branches upstream. Alternatively, we could create a linux-stable repo on our organization (or branches on the main linux repo) and have the backports there until integration upstream just for early testing.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, I've updated the patch set. I want at least one run presubmit, just so we have logs we can point to from our issue tracker or whatever to keep track of what needs to get backported. Will comment out the configs once we get a run.

driver.sh Outdated Show resolved Hide resolved
driver.sh Outdated Show resolved Hide resolved
Copy link
Member

@nathanchance nathanchance left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perfect, these are all of the changes that I would have done. I'm fairly certain 4.4 and 4.9 will blow up pretty quickly but if not, great! 4.14 and 4.19 is definitely a good start and we'll probably have plenty of warnings to backport.

@nickdesaulniers
Copy link
Member Author

I need to fix the variable kernel_image, it's not correct for the new REPOs.

  • test -e 4.14/arch/arm64/boot/Image.gz

@nathanchance
Copy link
Member

Ah yes should be tree, thank goodness for presubmit.

@nathanchance
Copy link
Member

nathanchance commented Nov 11, 2018

4.19 needs ClangBuiltLinux/linux@2a6c7c3

4.4/4.9 need the series mentioned in #35.

Hopefully that patch makes it into 4.19.2, Greg seems to be churning through his backlog pretty quickly.

Since it is only one patch that should be needed, we could add a patches/${REPO} folder to apply it in the meantime: nathanchance@3ce8b13

It'll be tested here, I have to run off to work: https://travis-ci.com/nathanchance/continuous-integration/jobs/157777563

@nickdesaulniers
Copy link
Member Author

I just got an email that @gregkh added the -fcall-used-x0 to stable. (an hour after your post @nathanchance )

@nathanchance
Copy link
Member

Yeah ah the irony lol

@nickdesaulniers nickdesaulniers force-pushed the config branch 2 times, most recently from bfb51d6 to 8252eb1 Compare November 12, 2018 01:11
@nickdesaulniers
Copy link
Member Author

ok, now that we have a presubmit run (build 225), let's commit just 4.14 support.

@nickdesaulniers nickdesaulniers mentioned this pull request Nov 12, 2018
@nickdesaulniers
Copy link
Member Author

Makefile:966: *** "Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel". Stop.

Did the ORC unwinder just become default on?

@nathanchance
Copy link
Member

No, my '-pipe' patch got merged so the git apply command failed. I'm actually testing dropping the patch right now: nathanchance@7b32d09

@nickdesaulniers
Copy link
Member Author

set -e would have stopped the build at the error. 😝

@nathanchance
Copy link
Member

It might be worth setting that globally if no command is meant to fail.

Fixes the case were $ARCH was not set when driver.sh was invoked. It
needs to be an env var for the kernel's make; driver default initializes
a local shell variable. It needs to re-export $ARCH the env var.
Still need to pick some configs in travis.yml.
Let's start with arm64 for now, then add more arch's later, if people
care about them.

Looks like 4.14 is supported, but 4.19, 4.9, and 4.4 need more
backports before they can be enabled.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants