From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 902E5C2B9F4 for ; Tue, 22 Jun 2021 09:10:56 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id E35666113D for ; Tue, 22 Jun 2021 09:10:55 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E35666113D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:50454 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lvcQo-0002yy-SS for qemu-devel@archiver.kernel.org; Tue, 22 Jun 2021 05:10:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58996) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lvcPC-0000Sg-Cj for qemu-devel@nongnu.org; Tue, 22 Jun 2021 05:09:14 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:24972) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lvcP9-00037N-Dj for qemu-devel@nongnu.org; Tue, 22 Jun 2021 05:09:13 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1624352949; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=r6vNp6HvL6RI7lOjzM0oSjf+zXQnMi8op30WVz28vPg=; b=BVohyIzMGrJPUG2/Y3mBvTbyRwX1sdC3AQ2Jmt4904zdPYoW1BIfDSmCX83N9BshF7nbwQ thPmZZgVTWTfJ83bi5QFTsKAsuyiQI+WacBX2o5lX7fvl9Psx/mkVR7peODqFZyv4RR1vA hImVd9w/VWTmanUYWRC8ax4yk5e5UvI= Received: from mail-ej1-f71.google.com (mail-ej1-f71.google.com [209.85.218.71]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-526-GJH9C_HzNxyEKME9r_xeIw-1; Tue, 22 Jun 2021 05:09:07 -0400 X-MC-Unique: GJH9C_HzNxyEKME9r_xeIw-1 Received: by mail-ej1-f71.google.com with SMTP id w22-20020a17090652d6b029048a3391d9f6so1171935ejn.12 for ; Tue, 22 Jun 2021 02:09:07 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:in-reply-to:references:date :message-id:mime-version:content-transfer-encoding; bh=r6vNp6HvL6RI7lOjzM0oSjf+zXQnMi8op30WVz28vPg=; b=RuCIA1s6kDWs8vF4b0Oy5drm/ueKHI6mWVI8QnO0VD7FchGCAilB32+538XSktNfpv h0eOOCWYum4Vvo/SWOsJNJjBmPz8DH72BF8PpyokufjLA8N82BH570zinn4cPZHbhLVy e+5BSNE8/AUgcALsLFi6+1WP1tMJVqMBzfMMr+cMAPYn0OzPRx7EY+IloHjhpcOsCiqG uSRAUaeA0Yr0gvoQE0YebhDbhPfUTvJQ003BLcN1b93Ooc4c2Wa8Xel+b1Rj/7hZmmBZ qCLmMLc6uhUEJo50UtJQGcmGsTyRKid8Sdxj/UX6wSZuqgWl93f4g8ZBU4+winV6nkpy mDIA== X-Gm-Message-State: AOAM533jVSbl38G3BHsFD6czKTmad/kPVUTwr5J1Zc5aA3n7+ipSla0l bYibrRwGyIaI/iBJWx2OQvcHzp1mHZ74Gex7s9lFacuym2HaP/9BCbw4ocPBRbVTKKxNOrcJUQk lgEYD01vOyzA2fgk= X-Received: by 2002:a17:906:616:: with SMTP id s22mr2887795ejb.210.1624352946696; Tue, 22 Jun 2021 02:09:06 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy6+KSQ2YjqHO8wSWZC5EeZkFfVSqS1JSGh1pel3YrVYY1jRdJSKVU5EWI8QQ0rggdbZFA9fQ== X-Received: by 2002:a17:906:616:: with SMTP id s22mr2887772ejb.210.1624352946452; Tue, 22 Jun 2021 02:09:06 -0700 (PDT) Received: from alrua-x1.borgediget.toke.dk ([45.145.92.2]) by smtp.gmail.com with ESMTPSA id n13sm11742639edx.30.2021.06.22.02.09.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Jun 2021 02:09:05 -0700 (PDT) Received: by alrua-x1.borgediget.toke.dk (Postfix, from userid 1000) id 4C0E818071E; Tue, 22 Jun 2021 11:09:05 +0200 (CEST) From: Toke =?utf-8?Q?H=C3=B8iland-J=C3=B8rgensen?= To: =?utf-8?Q?Daniel_P=2E_Berrang=C3=A9?= Subject: Re: [RFC PATCH 0/5] ebpf: Added ebpf helper for libvirtd. In-Reply-To: References: <3da88930-439c-1892-29b4-4977ddbb0b0a@redhat.com> <07a81543-c262-f153-6414-3d967dde02b2@redhat.com> <9157bf00-299f-993d-dd16-62f13e017a3f@redhat.com> <87o8byqpao.fsf@toke.dk> X-Clacks-Overhead: GNU Terry Pratchett Date: Tue, 22 Jun 2021 11:09:05 +0200 Message-ID: <87im26qn9q.fsf@toke.dk> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=toke@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=170.10.133.124; envelope-from=toke@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -31 X-Spam_score: -3.2 X-Spam_bar: --- X-Spam_report: (-3.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.373, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Andrew Melnichenko , "Michael S . Tsirkin" , Jason Wang , Markus Armbruster , qemu-devel@nongnu.org, Yuri Benditovich , Yan Vugenfirer , Eric Blake Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Daniel P. Berrang=C3=A9 writes: > On Tue, Jun 22, 2021 at 10:25:19AM +0200, Toke H=C3=B8iland-J=C3=B8rgense= n wrote: >> Jason Wang writes: >>=20 >> > =E5=9C=A8 2021/6/22 =E4=B8=8A=E5=8D=8811:29, Yuri Benditovich =E5=86= =99=E9=81=93: >> >> On Mon, Jun 21, 2021 at 12:20 PM Jason Wang wro= te: >> >>> >> >>> =E5=9C=A8 2021/6/19 =E4=B8=8A=E5=8D=884:03, Andrew Melnichenko =E5= =86=99=E9=81=93: >> >>>> Hi Jason, >> >>>> I've checked "kernel.unprivileged_bpf_disabled=3D0" on Fedora, Ubu= ntu, >> >>>> and Debian - no need permissions to update BPF maps. >> >>> >> >>> How about RHEL :) ? >> >> If I'm not mistaken, the RHEL releases do not use modern kernels yet >> >> (for BPF we need 5.8+). >> >> So this will be (probably) relevant for RHEL 9. Please correct me if = I'm wrong. >> > >> > Adding Toke for more ideas on this. >>=20 >> Ignore the kernel version number; we backport all of BPF to RHEL, >> basically. RHEL8.4 is up to upstream kernel 5.10, feature-wise. >>=20 >> However, we completely disable unprivileged BPF on RHEL kernels. Also, >> there's upstream commit: >> 08389d888287 ("bpf: Add kconfig knob for disabling unpriv bpf by default= ") >>=20 >> which adds a new value of '2' to the unprivileged_bpf_disable sysctl. I >> believe this may end up being the default on Fedora as well. >>=20 >> So any design relying on unprivileged BPF is likely to break; I'd >> suggest you look into how you can get this to work with CAP_BPF :) > > QEMU will never have any capabilities. Any resources that required > privileges have to be opened by a separate privileged helper, and the > open FD then passed across to the QEMU process. This relies on the > capabilities checks only being performed at time of initial opening, > and *not* on operations performed on the already open FD. That won't work for regular map updates either, unfortunately: you still have to perform a bpf() syscall to update an element, and that is a privileged operation. You may be able to get around this by using an array map type and mmap()'ing the map contents, but I'm not sure how well that will work across process boundaries. If it doesn't, I only see two possibilities: populate the map ahead-of-time and leave it in place, or keep the privileged helper process around to perform map updates on behalf of QEMU... -Toke