From: Suren Baghdasaryan <surenb@google.com> To: Will Deacon <will@kernel.org> Cc: linux-arm-kernel@lists.infradead.org, linux-arch@vger.kernel.org, Catalin Marinas <catalin.marinas@arm.com>, Marc Zyngier <maz@kernel.org>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Peter Zijlstra <peterz@infradead.org>, Morten Rasmussen <morten.rasmussen@arm.com>, Qais Yousef <qais.yousef@arm.com>, kernel-team <kernel-team@android.com>, Elliott Hughes <enh@google.com> Subject: Re: [PATCH 0/6] An alternative series for asymmetric AArch32 systems Date: Thu, 29 Oct 2020 11:42:04 -0700 [thread overview] Message-ID: <CAJuCfpH2vZfH0mZMxukKvcs1jW7Udiu4P-5z4ZyDU1-JN3xMdg@mail.gmail.com> (raw) In-Reply-To: <20201027215118.27003-1-will@kernel.org> On Tue, Oct 27, 2020 at 2:51 PM Will Deacon <will@kernel.org> wrote: > > Hi all, > > I was playing around with the asymmetric AArch32 RFCv2 from Qais: > > https://lore.kernel.org/r/20201021104611.2744565-1-qais.yousef@arm.com > > and ended up writing my own implementation this afternoon. I think it's > smaller, simpler and easier to work with. In particular: > > * I got rid of the sysctl in favour of a plain cmdline parameter > * I don't have a new CPU capability > * I don't have a new thread flag > * I expose a cpumask to userspace via sysfs to identify the 32-bit CPUs > > Anyway, I don't think we should merge this stuff (other than the first patch) > until we've figured out what's going on in Android, but I wanted to get > this out as something which we might be able to build on. Hi Will, Thanks for posting this series. Just to provide some more background, on Android, 64-bit apps are forked from zygote64 process and 32-bit ones from zygote. So normally we could handle the issues with such asymmetric architectures using cpuset cgroup and placing zygote process (and consequently all its children) in a separate cgroup with affinity mask that includes only 32-bit capable cores. We would have to take care of the affinity mask for such tasks during task migrations, but it's still doable from userspace. However there are 64-bit apps which fork 32-bit processes and that is the case which is unclear how to handle without help from the kernel. Still discussing possible solutions. CC'ing more people from Android to be in the loop. Thanks, Suren. > > Cheers, > > Will > > Cc: Catalin Marinas <catalin.marinas@arm.com> > Cc: Marc Zyngier <maz@kernel.org> > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > Cc: Peter Zijlstra <peterz@infradead.org> > Cc: Morten Rasmussen <morten.rasmussen@arm.com> > Cc: Qais Yousef <qais.yousef@arm.com> > Cc: Suren Baghdasaryan <surenb@google.com> > Cc: kernel-team@android.com > > --->8 > > Qais Yousef (1): > KVM: arm64: Handle Asymmetric AArch32 systems > > Will Deacon (5): > arm64: Allow mismatched 32-bit EL0 support > KVM: arm64: Kill 32-bit vCPUs on systems with mismatched EL0 support > arm64: Kill 32-bit applications scheduled on 64-bit-only CPUs > arm64: Advertise CPUs capable of running 32-bit applcations in sysfs > arm64: Hook up cmdline parameter to allow mismatched 32-bit EL0 > > .../ABI/testing/sysfs-devices-system-cpu | 8 ++ > .../admin-guide/kernel-parameters.txt | 7 ++ > arch/arm64/include/asm/cpufeature.h | 3 + > arch/arm64/kernel/cpufeature.c | 80 ++++++++++++++++++- > arch/arm64/kernel/process.c | 21 ++++- > arch/arm64/kernel/signal.c | 26 ++++++ > arch/arm64/kvm/arm.c | 27 +++++++ > 7 files changed, 168 insertions(+), 4 deletions(-) > > -- > 2.29.0.rc2.309.g374f81d7ae-goog >
WARNING: multiple messages have this Message-ID (diff)
From: Suren Baghdasaryan <surenb@google.com> To: Will Deacon <will@kernel.org> Cc: linux-arch@vger.kernel.org, Marc Zyngier <maz@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Catalin Marinas <catalin.marinas@arm.com>, Qais Yousef <qais.yousef@arm.com>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Elliott Hughes <enh@google.com>, kernel-team <kernel-team@android.com>, Morten Rasmussen <morten.rasmussen@arm.com>, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH 0/6] An alternative series for asymmetric AArch32 systems Date: Thu, 29 Oct 2020 11:42:04 -0700 [thread overview] Message-ID: <CAJuCfpH2vZfH0mZMxukKvcs1jW7Udiu4P-5z4ZyDU1-JN3xMdg@mail.gmail.com> (raw) In-Reply-To: <20201027215118.27003-1-will@kernel.org> On Tue, Oct 27, 2020 at 2:51 PM Will Deacon <will@kernel.org> wrote: > > Hi all, > > I was playing around with the asymmetric AArch32 RFCv2 from Qais: > > https://lore.kernel.org/r/20201021104611.2744565-1-qais.yousef@arm.com > > and ended up writing my own implementation this afternoon. I think it's > smaller, simpler and easier to work with. In particular: > > * I got rid of the sysctl in favour of a plain cmdline parameter > * I don't have a new CPU capability > * I don't have a new thread flag > * I expose a cpumask to userspace via sysfs to identify the 32-bit CPUs > > Anyway, I don't think we should merge this stuff (other than the first patch) > until we've figured out what's going on in Android, but I wanted to get > this out as something which we might be able to build on. Hi Will, Thanks for posting this series. Just to provide some more background, on Android, 64-bit apps are forked from zygote64 process and 32-bit ones from zygote. So normally we could handle the issues with such asymmetric architectures using cpuset cgroup and placing zygote process (and consequently all its children) in a separate cgroup with affinity mask that includes only 32-bit capable cores. We would have to take care of the affinity mask for such tasks during task migrations, but it's still doable from userspace. However there are 64-bit apps which fork 32-bit processes and that is the case which is unclear how to handle without help from the kernel. Still discussing possible solutions. CC'ing more people from Android to be in the loop. Thanks, Suren. > > Cheers, > > Will > > Cc: Catalin Marinas <catalin.marinas@arm.com> > Cc: Marc Zyngier <maz@kernel.org> > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > Cc: Peter Zijlstra <peterz@infradead.org> > Cc: Morten Rasmussen <morten.rasmussen@arm.com> > Cc: Qais Yousef <qais.yousef@arm.com> > Cc: Suren Baghdasaryan <surenb@google.com> > Cc: kernel-team@android.com > > --->8 > > Qais Yousef (1): > KVM: arm64: Handle Asymmetric AArch32 systems > > Will Deacon (5): > arm64: Allow mismatched 32-bit EL0 support > KVM: arm64: Kill 32-bit vCPUs on systems with mismatched EL0 support > arm64: Kill 32-bit applications scheduled on 64-bit-only CPUs > arm64: Advertise CPUs capable of running 32-bit applcations in sysfs > arm64: Hook up cmdline parameter to allow mismatched 32-bit EL0 > > .../ABI/testing/sysfs-devices-system-cpu | 8 ++ > .../admin-guide/kernel-parameters.txt | 7 ++ > arch/arm64/include/asm/cpufeature.h | 3 + > arch/arm64/kernel/cpufeature.c | 80 ++++++++++++++++++- > arch/arm64/kernel/process.c | 21 ++++- > arch/arm64/kernel/signal.c | 26 ++++++ > arch/arm64/kvm/arm.c | 27 +++++++ > 7 files changed, 168 insertions(+), 4 deletions(-) > > -- > 2.29.0.rc2.309.g374f81d7ae-goog > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2020-10-29 18:42 UTC|newest] Thread overview: 96+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-10-27 21:51 [PATCH 0/6] An alternative series for asymmetric AArch32 systems Will Deacon 2020-10-27 21:51 ` Will Deacon 2020-10-27 21:51 ` [PATCH 1/6] KVM: arm64: Handle Asymmetric " Will Deacon 2020-10-27 21:51 ` Will Deacon 2020-10-27 21:51 ` [PATCH 2/6] arm64: Allow mismatched 32-bit EL0 support Will Deacon 2020-10-27 21:51 ` Will Deacon 2020-10-28 11:12 ` Catalin Marinas 2020-10-28 11:12 ` Catalin Marinas 2020-10-28 11:17 ` Will Deacon 2020-10-28 11:17 ` Will Deacon 2020-10-28 11:22 ` Catalin Marinas 2020-10-28 11:22 ` Catalin Marinas 2020-10-28 11:23 ` Will Deacon 2020-10-28 11:23 ` Will Deacon 2020-10-28 11:49 ` Catalin Marinas 2020-10-28 11:49 ` Catalin Marinas 2020-10-28 12:40 ` Will Deacon 2020-10-28 12:40 ` Will Deacon 2020-10-28 18:56 ` Catalin Marinas 2020-10-28 18:56 ` Catalin Marinas 2020-10-29 22:20 ` Will Deacon 2020-10-29 22:20 ` Will Deacon 2020-10-30 11:18 ` Catalin Marinas 2020-10-30 11:18 ` Catalin Marinas 2020-10-30 16:13 ` Will Deacon 2020-10-30 16:13 ` Will Deacon 2020-11-02 11:44 ` Catalin Marinas 2020-11-02 11:44 ` Catalin Marinas 2020-11-05 21:38 ` Will Deacon 2020-11-05 21:38 ` Will Deacon 2020-11-06 12:54 ` Qais Yousef 2020-11-06 12:54 ` Qais Yousef 2020-11-06 13:00 ` Will Deacon 2020-11-06 13:00 ` Will Deacon 2020-11-06 14:48 ` Qais Yousef 2020-11-06 14:48 ` Qais Yousef 2020-11-09 13:52 ` Will Deacon 2020-11-09 13:52 ` Will Deacon 2020-11-11 16:27 ` Qais Yousef 2020-11-11 16:27 ` Qais Yousef 2020-11-12 10:24 ` Will Deacon 2020-11-12 10:24 ` Will Deacon 2020-11-12 11:55 ` Qais Yousef 2020-11-12 11:55 ` Qais Yousef 2020-11-12 16:49 ` Qais Yousef 2020-11-12 16:49 ` Qais Yousef 2020-11-12 17:06 ` Marc Zyngier 2020-11-12 17:06 ` Marc Zyngier 2020-11-12 17:36 ` Qais Yousef 2020-11-12 17:36 ` Qais Yousef 2020-11-12 17:44 ` Will Deacon 2020-11-12 17:44 ` Will Deacon 2020-11-12 17:36 ` Will Deacon 2020-11-12 17:36 ` Will Deacon 2020-11-13 10:45 ` Qais Yousef 2020-11-13 10:45 ` Qais Yousef 2020-11-06 14:30 ` Catalin Marinas 2020-11-06 14:30 ` Catalin Marinas 2020-10-28 11:18 ` Catalin Marinas 2020-10-28 11:18 ` Catalin Marinas 2020-10-28 11:21 ` Will Deacon 2020-10-28 11:21 ` Will Deacon 2020-10-27 21:51 ` [PATCH 3/6] KVM: arm64: Kill 32-bit vCPUs on systems with mismatched " Will Deacon 2020-10-27 21:51 ` Will Deacon 2020-10-27 21:51 ` [PATCH 4/6] arm64: Kill 32-bit applications scheduled on 64-bit-only CPUs Will Deacon 2020-10-27 21:51 ` Will Deacon 2020-10-28 12:10 ` Catalin Marinas 2020-10-28 12:10 ` Catalin Marinas 2020-10-28 12:36 ` Will Deacon 2020-10-28 12:36 ` Will Deacon 2020-10-27 21:51 ` [PATCH 5/6] arm64: Advertise CPUs capable of running 32-bit applcations in sysfs Will Deacon 2020-10-27 21:51 ` Will Deacon 2020-10-28 8:37 ` Greg Kroah-Hartman 2020-10-28 8:37 ` Greg Kroah-Hartman 2020-10-28 9:51 ` Will Deacon 2020-10-28 9:51 ` Will Deacon 2020-10-28 12:15 ` Catalin Marinas 2020-10-28 12:15 ` Catalin Marinas 2020-10-28 12:27 ` Will Deacon 2020-10-28 12:27 ` Will Deacon 2020-10-28 15:14 ` Catalin Marinas 2020-10-28 15:14 ` Catalin Marinas 2020-10-28 15:35 ` Will Deacon 2020-10-28 15:35 ` Will Deacon 2020-10-27 21:51 ` [PATCH 6/6] arm64: Hook up cmdline parameter to allow mismatched 32-bit EL0 Will Deacon 2020-10-27 21:51 ` Will Deacon 2020-10-29 18:42 ` Suren Baghdasaryan [this message] 2020-10-29 18:42 ` [PATCH 0/6] An alternative series for asymmetric AArch32 systems Suren Baghdasaryan 2020-10-29 22:17 ` Will Deacon 2020-10-29 22:17 ` Will Deacon 2020-10-30 16:16 ` Marc Zyngier 2020-10-30 16:16 ` Marc Zyngier 2020-10-30 16:24 ` Will Deacon 2020-10-30 16:24 ` Will Deacon 2020-10-30 17:04 ` Marc Zyngier 2020-10-30 17:04 ` Marc Zyngier
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=CAJuCfpH2vZfH0mZMxukKvcs1jW7Udiu4P-5z4ZyDU1-JN3xMdg@mail.gmail.com \ --to=surenb@google.com \ --cc=catalin.marinas@arm.com \ --cc=enh@google.com \ --cc=gregkh@linuxfoundation.org \ --cc=kernel-team@android.com \ --cc=linux-arch@vger.kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=maz@kernel.org \ --cc=morten.rasmussen@arm.com \ --cc=peterz@infradead.org \ --cc=qais.yousef@arm.com \ --cc=will@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.