Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753303AbcJDSBP (ORCPT ); Tue, 4 Oct 2016 14:01:15 -0400 Received: from mail-oi0-f43.google.com ([209.85.218.43]:36859 "EHLO mail-oi0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752699AbcJDSBN (ORCPT ); Tue, 4 Oct 2016 14:01:13 -0400 MIME-Version: 1.0 In-Reply-To: <20161004161630.GC4205@htj.duckdns.org> References: <1475556090-6278-1-git-send-email-john.stultz@linaro.org> <20161004161630.GC4205@htj.duckdns.org> From: John Stultz Date: Tue, 4 Oct 2016 11:01:12 -0700 Message-ID: Subject: Re: [RFC][PATCH 0/2] Another pass at Android style loosening of cgroup attach permissions To: Tejun Heo Cc: lkml , Li Zefan , Jonathan Corbet , cgroups@vger.kernel.org, Android Kernel Team , Rom Lemarchand , Colin Cross , Dmitry Shmidt , Todd Kjos , Christian Poetzsch , Amit Pundir Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1929 Lines: 47 On Tue, Oct 4, 2016 at 9:16 AM, Tejun Heo wrote: > On Mon, Oct 03, 2016 at 09:41:28PM -0700, John Stultz wrote: >> The migration of a task from the foreground to background, or to >> elevate a task to audio priority, may be done by system service that >> does not run as root. So this patch allows processes with CAP_SYS_NICE >> to be able to migrate tasks between cgroups. I suspect if there was a >> specific cap (CAP_SYS_CHANGE_CGROUP) for this, it would be usable here, >> but in its absence, they've overloaded CAP_SYS_NICE for this use. > > CAP_SYS_RESOURCE won't do? > >> At first glance, overloading CAP_SYS_NICE seems a bit hackish, but this >> shows that there is a active and widely deployed use for different cgroup >> attachment rules then what is currently available. > > I'm curious who issues these migrations. The system_server process via the sched_policy logic: http://androidxref.com/7.0.0_r1/xref/system/core/libcutils/sched_policy.c#274 See set_cpuset_policy() and set_sched_policy(). > Is that restricted to > certain uids? If so, would it work for android if cgroupfs supports > ACL so that those uids can be approved via setfacl? That'd be an a > lot more generic approach. So tasks might move themselves in some cases to specific groups, but mostly its controlled by the system_server. So to make sure I understand your suggestion, you're suggesting the cgroupfs files like: cpuctrl/tasks, cpuctrl/bg_non_interactive/tasks, cpuset/foreground/tasks, cpuset/background/tasks, etc use ACL permissions to specify the specific uids that can write to them? I guess this would be conceptually similar to just setting the owner to the system task, no? Though I'm not sure that would be sufficient since it would still fail the cgroup_procs_write_permission() checks. Or are you suggesting we add extra logic to make the file owner uid as sufficient to change other tasks? thanks -john