From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754876AbbFLXXt (ORCPT ); Fri, 12 Jun 2015 19:23:49 -0400 Received: from mail-yk0-f171.google.com ([209.85.160.171]:34348 "EHLO mail-yk0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753040AbbFLXXq (ORCPT ); Fri, 12 Jun 2015 19:23:46 -0400 Message-ID: <557B6A00.7000600@plumgrid.com> Date: Fri, 12 Jun 2015 16:23:44 -0700 From: Alexei Starovoitov User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Andy Lutomirski CC: "David S. Miller" , Ingo Molnar , Steven Rostedt , Wang Nan , Li Zefan , Daniel Wagner , Daniel Borkmann , Linux API , Network Development , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH net-next 1/3] bpf: introduce current->pid, tgid, uid, gid, comm accessors References: <1434145226-17892-1-git-send-email-ast@plumgrid.com> <1434145226-17892-2-git-send-email-ast@plumgrid.com> <557B60DB.5030200@plumgrid.com> In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 6/12/15 3:54 PM, Andy Lutomirski wrote: > On Fri, Jun 12, 2015 at 3:44 PM, Alexei Starovoitov wrote: >> On 6/12/15 3:08 PM, Andy Lutomirski wrote: >>> >>> On Fri, Jun 12, 2015 at 2:40 PM, Alexei Starovoitov >>> wrote: >>>> >>>> eBPF programs attached to kprobes need to filter based on >>>> current->pid, uid and other fields, so introduce helper functions: >>>> >>>> u64 bpf_get_current_pid_tgid(void) >>>> Return: current->tgid << 32 | current->pid >>>> >>>> u64 bpf_get_current_uid_gid(void) >>>> Return: current_gid << 32 | current_uid >>> >>> >>> How does this work wrt namespaces, >> >> >> from_kuid(current_user_ns(), uid) >> > > Is current_user_ns() well defined in the context of an eBPF program? What do you mean 'well defined'? Semantically same as 'current'. Depending on where particular kprobe is placed, 'current' is either meaningful or not. Program author needs to know what he's doing. It's a tool.