Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp1414331ybl; Tue, 13 Aug 2019 12:10:39 -0700 (PDT) X-Google-Smtp-Source: APXvYqzMx9yFf3Pli4VrJp1Y94LBEdfqmRV0jGtVLVKAMZr+4oFcRseupKTscgeELMLwgt6pqWCh X-Received: by 2002:a63:2887:: with SMTP id o129mr29125385pgo.179.1565723439188; Tue, 13 Aug 2019 12:10:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565723439; cv=none; d=google.com; s=arc-20160816; b=Xac0gnDPlw6po0YpS9KTTBxRF0upw8SzKKeJ7AMHlxOwhhdpyxHRvCBdnkFuSREXdA ceRTVgTX1lZzgiFOQ1jhSvOkaElPIeRSpe51jDp/JQfxAc41Oeiv5Niq6afoI849udno HUH90h9VUM8G3kJm58SmopJYLIj+DhVr8Ml6t6fGvjA9tKYgt0bN5Alff9CDOWM1KKyH NJKDI0pR0qN77Dm57zwpwneI8uDHz72n6kgSn55z0zOuweZzfsLIDXfGadWMZeeJHFkD /wDRFVC9wvOWf8bva0RMXZXQ1o6b3HER6XK6wy1Ysg11OFM3HJAJzsDb95YHAz4AWQt/ DN5w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:mail-followup-to :message-id:subject:cc:to:from:date:dkim-signature; bh=0u7BN29CLMZnWfORCWS1hbiMyqbWKAOria45XT6FwOU=; b=JvkrqsaEIWAMBA7pSGFJysmeTurlApB5KghtV6SC+gcZlVqpIF9LqoukDSdcl3XfWj TYiidXlLvgz3IkLKJ/ij6U3QOgLHBOeJ7ywMBHlXDDyEg26SgED9uWZN4dKl+JjObVF4 +5KkoZqTkWLme4DH8Jj/33DeGQAE3kbCRQq/h1kDQqA4zrFDj8G70wzR5q9K+D8xORZI GGDgJ5b0zGOSRFDAxxNR8aAj3SVTIHpXJhUorUoDsEgYpK5+1uMZS+rI9g1UiQ105oND iHF0g7s4jdMqAbGfqItd9rcJsOioWKyvS+sA0KgZk6ufUpZjqhLD3cN+AV3rfWtifej3 +mEg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=mJtgPvGB; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s9si58975419plr.146.2019.08.13.12.10.23; Tue, 13 Aug 2019 12:10:39 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=mJtgPvGB; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727137AbfHMS7G (ORCPT + 99 others); Tue, 13 Aug 2019 14:59:06 -0400 Received: from mail-lj1-f196.google.com ([209.85.208.196]:46733 "EHLO mail-lj1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726267AbfHMS7F (ORCPT ); Tue, 13 Aug 2019 14:59:05 -0400 Received: by mail-lj1-f196.google.com with SMTP id f9so4003166ljc.13 for ; Tue, 13 Aug 2019 11:59:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:mail-followup-to:references :mime-version:content-disposition:in-reply-to:user-agent; bh=0u7BN29CLMZnWfORCWS1hbiMyqbWKAOria45XT6FwOU=; b=mJtgPvGBhkUvHoKaycDfPjauZ+0YHZj65HimqLO5OuLOGR3snn7HnQgEaAoDS4vomC iU+m0UB3EgfX6iZSeiiQsrHp81onXlmYZIMT9gSwIAIKdWQ+h9Pe9cMsskki2GcA8j51 kt2UdlZViy6wUGzVsvJlEn8sidFz+Vt7AGOMYI2yp/xaGApOUAbKYDUDhURCMEv4njsh 16MmIp9a6IfZpMpY5xeIZxYCAh1DfBtb5gBQzeynZEBkOnODLiA/RaDXRZXTOjoTr+c1 1spfNPE0Qi9kK+Vnkrsoo3NqAW/aq9hh+Umhw7uNMiODUc8ybgfp2scdfLnRdycvxPvX TQxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id :mail-followup-to:references:mime-version:content-disposition :in-reply-to:user-agent; bh=0u7BN29CLMZnWfORCWS1hbiMyqbWKAOria45XT6FwOU=; b=sJuy9D7/uOT6xptNAkB66cMAAse86Rkbe+o5G/6X4sW06WVhDOkqtnR7VWQlJOJFxF qVl7ErOiLpLF3pkSTaTePEz6MhLuhODU3qOcgFKnlZjj3AGInww6ii1ohGMatEg86Kmh DddGiN8sXbA5UEBmuXV1e4RTlaV+w/vlna4w23iUtuSFuC4iOb904YSAPzUlvVQxcRPT gnuxxhPG0SbQCobAaX/XNJVSUEBlEVAaj3vPVeQ9baZUIfhCySaeUZSDsakg9brAascg iqqJgIFGb8EnvDqjflg/vPoR8mRDD2sMdr+YT/+sDHhjEiTICh5mX0saFU3/YyUIWUYL KnWw== X-Gm-Message-State: APjAAAVbT629gojkkQkQAsBeUaIWeYb2pzm2y150DzCynjDfQlFNvWlr pZFY5xT0+/bQJR2LGNGVQxRnfQ== X-Received: by 2002:a2e:7a07:: with SMTP id v7mr8037467ljc.105.1565722743295; Tue, 13 Aug 2019 11:59:03 -0700 (PDT) Received: from khorivan (168-200-94-178.pool.ukrtel.net. [178.94.200.168]) by smtp.gmail.com with ESMTPSA id i17sm19868876lfp.94.2019.08.13.11.59.02 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 13 Aug 2019 11:59:02 -0700 (PDT) Date: Tue, 13 Aug 2019 21:59:00 +0300 From: Ivan Khoronzhuk To: Jonathan Lemon Cc: magnus.karlsson@intel.com, bjorn.topel@intel.com, davem@davemloft.net, hawk@kernel.org, john.fastabend@gmail.com, jakub.kicinski@netronome.com, daniel@iogearbox.net, netdev@vger.kernel.org, bpf@vger.kernel.org, xdp-newbies@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH bpf-next 3/3] samples: bpf: syscal_nrs: use mmap2 if defined Message-ID: <20190813185859.GB2856@khorivan> Mail-Followup-To: Jonathan Lemon , magnus.karlsson@intel.com, bjorn.topel@intel.com, davem@davemloft.net, hawk@kernel.org, john.fastabend@gmail.com, jakub.kicinski@netronome.com, daniel@iogearbox.net, netdev@vger.kernel.org, bpf@vger.kernel.org, xdp-newbies@vger.kernel.org, linux-kernel@vger.kernel.org References: <20190813102318.5521-1-ivan.khoronzhuk@linaro.org> <20190813102318.5521-4-ivan.khoronzhuk@linaro.org> <036BCF4A-53D6-4000-BBDE-07C04B8B23FA@flugsvamp.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline In-Reply-To: <036BCF4A-53D6-4000-BBDE-07C04B8B23FA@flugsvamp.com> User-Agent: Mutt/1.9.4 (2018-02-28) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Aug 13, 2019 at 10:41:54AM -0700, Jonathan Lemon wrote: > > >On 13 Aug 2019, at 3:23, Ivan Khoronzhuk wrote: > >> For arm32 xdp sockets mmap2 is preferred, so use it if it's defined. >> >> Signed-off-by: Ivan Khoronzhuk > >Doesn't this change the application API? >-- >Jonathan From what I know there is no reason to use both, so if __NR_mmap2 is defined but not __NR_mmap. Despite the fact that it can be defined internally, say #define __NR_mmap (__NR_SYSCALL_BASE + 90) and be used anyway, at least arm use 2 definition one is for old abi and one is for new and names as their numbers are different: #define __NR_mmap (__NR_SYSCALL_BASE + 90) #define __NR_mmap2 (__NR_SYSCALL_BASE + 192) , so they are not interchangeable and if eabi is used then only __NR_mmap2 is defined if oeabi then __NR_mmap only... But mmap() use only one and can hide this from user. In this patch, seems like here is direct access, so I have no declaration for __NR_mmap and it breaks build. So here several solutions, I can block __NR_mmap at all or replace it on __NR_mmap2...or define it by hand (for what then?). I decided to replace on real one. > > >> --- >> samples/bpf/syscall_nrs.c | 5 +++++ >> samples/bpf/tracex5_kern.c | 11 +++++++++++ >> 2 files changed, 16 insertions(+) >> >> diff --git a/samples/bpf/syscall_nrs.c b/samples/bpf/syscall_nrs.c >> index 516e255cbe8f..2dec94238350 100644 >> --- a/samples/bpf/syscall_nrs.c >> +++ b/samples/bpf/syscall_nrs.c >> @@ -9,5 +9,10 @@ void syscall_defines(void) >> COMMENT("Linux system call numbers."); >> SYSNR(__NR_write); >> SYSNR(__NR_read); >> +#ifdef __NR_mmap2 >> + SYSNR(__NR_mmap2); >> +#else >> SYSNR(__NR_mmap); >> +#endif >> + >> } >> diff --git a/samples/bpf/tracex5_kern.c b/samples/bpf/tracex5_kern.c >> index f57f4e1ea1ec..300350ad299a 100644 >> --- a/samples/bpf/tracex5_kern.c >> +++ b/samples/bpf/tracex5_kern.c >> @@ -68,12 +68,23 @@ PROG(SYS__NR_read)(struct pt_regs *ctx) >> return 0; >> } >> >> +#ifdef __NR_mmap2 >> +PROG(SYS__NR_mmap2)(struct pt_regs *ctx) >> +{ >> + char fmt[] = "mmap2\n"; >> + >> + bpf_trace_printk(fmt, sizeof(fmt)); >> + return 0; >> +} >> +#else >> PROG(SYS__NR_mmap)(struct pt_regs *ctx) >> { >> char fmt[] = "mmap\n"; >> + >> bpf_trace_printk(fmt, sizeof(fmt)); >> return 0; >> } >> +#endif >> >> char _license[] SEC("license") = "GPL"; >> u32 _version SEC("version") = LINUX_VERSION_CODE; >> -- >> 2.17.1 -- Regards, Ivan Khoronzhuk