From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ej1-f53.google.com (mail-ej1-f53.google.com [209.85.218.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D0C04D27E; Thu, 14 Mar 2024 06:27:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.53 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710397681; cv=none; b=jz/hOO5+UFyK+iNWi4R9EUzxbiLuZ3pQLA+0brzYknFIv8nphiJIYsThX/lohlS8LvbOFFZ0YgDm86k+nMfl7QQoiOW203Y/LodLgPY2BIl2ZUzepPk47qp/qZxznTQzQkrElRp5k8wrs8XNGiEzDZGhJzJzHc23vWVEeFC9uEU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710397681; c=relaxed/simple; bh=9PJKp5d07U4cqQ+doLFO1wV2FwDX/AFcq+h6mLuajhA=; h=From:Date:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=Ik5ui+cXHlpMXwDYrvcJ97qBmaoNSjt7Hd8fEEwKAXU3dPJ7RkA5rB4UzfNyZBXNedBca7gAXuP1Sjyr6tNk4kv9nv5m7hCgCFkotRk2IMlGXcCRoc+4GL+lYSvT4Dou1aJ448uNSCLb832JBEc2gP5BkbtPGBduX5t62dJ5NDw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=UxAJg3a3; arc=none smtp.client-ip=209.85.218.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="UxAJg3a3" Received: by mail-ej1-f53.google.com with SMTP id a640c23a62f3a-a44f2d894b7so53194866b.1; Wed, 13 Mar 2024 23:27:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710397676; x=1711002476; darn=vger.kernel.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:date:from:from:to :cc:subject:date:message-id:reply-to; bh=Wy48BMq7k7tUA5PbAAKgjU/lgoVJFz6MN9TbVJQFsQM=; b=UxAJg3a3Z+yT+HhNZCswgwLcX0lMVw/lOrUNh3ZZdeXorK0fIYY810Ti2siwbJb/x2 iQKD6YyHgbTXClQ7vpDG1py1frjvjmj1cn9L755waaoc5+8e1OiLbI3ppTDSnVyzjKpj 8jTK6JH8sxAH0qk0aWU47f2rUK1rZCoGLhtNvPDQMb5kR/DoR7cc3Ca3fbizS30nM90b 2jL4szJTzoLU7Qo2W3HIFTgGk7HrtUzWjqsdKEflBYzZ/kNVhyxc4ZZEluzHSDhgfSgs 9FSFHhJZZLB1s8aOrmFe1r4AtqDP1D5hE4hczL4IBB5AHm8ocTyz6QtBe96OFG2UZ2+D weyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710397676; x=1711002476; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:date:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Wy48BMq7k7tUA5PbAAKgjU/lgoVJFz6MN9TbVJQFsQM=; b=oGF0xO9MUwF9x7XT86KBHYWcVeGVLRG2nWSS2pk0xJjoXMv8NTsXfViLmm7iRyWe6W 1nPu28XTXH7TAs/qJuza1nQyw56TniBZzZWHZobBKx5clPXFQbRDo4pa4wAV6vpSGYPw aKGEA61xQOYYwh9Bv7h6NS7k+bQ/fi8bnMjNswX/rOWuKSvQoJHkjbvPubV5n7eu1vXH 7odE5kCNELPQlrryi3wQtvVFtT15EPx/jcNh2/35+lfh1do2knTz6RSqb2dUYphyoOBT t+WvlVnPzcY8ahYcZs1oJX+eiDyWf/pyRYDvapi/nQSQO2WLsiYEePXZxSfootmLPgEt DaSw== X-Forwarded-Encrypted: i=1; AJvYcCVS9QQXVZkbh6HjwVVx+tCiamGDoMwR3C50rjNo/jD4UJUvZ+fJAw1LJIMufTZdYRrceaQ2L2LCU71xOmgBkYSt/PXS1JOESxxatfca4/1UsmpB4FuoF3NDZuVUnov++Pjer/QCdKhPNSzfA/Yl+6sQzLisTm3CBDM8wQxBPJdFtcQKh5sxo65DzDftg21gxRVxzaNgsDqxOB5TF5Hl6Y3AkYINPFKceZyEd5p1xHi4OUhlcnhkzVnsmIx262h+5KlV6XGq9q5xeSgsN+RPkfJS/dQjgVI5cIvHnw== X-Gm-Message-State: AOJu0YyMhHEBNBmHbQxVeZX/yZ4CuzjY5UuYQfXbTfB2fHMvcJlJdMPz 3Y91Aw1uABMjgnAgA5Da48JScs492pEMjBwonp8f8tw/o6pLukBh X-Google-Smtp-Source: AGHT+IF0pnR3t8OP32CidAqcEwLWVf5pxREHuVK53gI8rH7KwaQf04P9Mb0+ZaiK2iVNQgj+ScQKXQ== X-Received: by 2002:a17:906:b899:b0:a3f:5ad2:1ff0 with SMTP id hb25-20020a170906b89900b00a3f5ad21ff0mr391041ejb.46.1710397675813; Wed, 13 Mar 2024 23:27:55 -0700 (PDT) Received: from krava (2001-1ae9-1c2-4c00-726e-c10f-8833-ff22.ip6.tmcz.cz. [2001:1ae9:1c2:4c00:726e:c10f:8833:ff22]) by smtp.gmail.com with ESMTPSA id ld8-20020a170906f94800b00a46754900a4sm104587ejb.33.2024.03.13.23.27.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Mar 2024 23:27:55 -0700 (PDT) From: Jiri Olsa X-Google-Original-From: Jiri Olsa Date: Thu, 14 Mar 2024 07:27:52 +0100 To: Alexei Starovoitov Cc: =?utf-8?B?5qKm6b6Z6JGj?= , Andrii Nakryiko , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Eddy Z , Song Liu , Yonghong Song , John Fastabend , KP Singh , Stanislav Fomichev , Hao Luo , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , "David S. Miller" , David Ahern , Dave Hansen , X86 ML , Steven Rostedt , Mathieu Desnoyers , Quentin Monnet , bpf , linux-arm-kernel , LKML , linux-riscv , linux-s390 , Network Development , linux-trace-kernel@vger.kernel.org, "open list:KERNEL SELFTEST FRAMEWORK" , linux-stm32@st-md-mailman.stormreply.com Subject: Re: [External] Re: [PATCH bpf-next v2 1/9] bpf: tracing: add support to record and check the accessed args Message-ID: References: <20240311093526.1010158-1-dongmenglong.8@bytedance.com> <20240311093526.1010158-2-dongmenglong.8@bytedance.com> Precedence: bulk X-Mailing-List: bpf@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: On Wed, Mar 13, 2024 at 05:25:35PM -0700, Alexei Starovoitov wrote: > On Tue, Mar 12, 2024 at 6:53 PM 梦龙董 wrote: > > > > On Wed, Mar 13, 2024 at 12:42 AM Alexei Starovoitov > > wrote: > > > > > > On Mon, Mar 11, 2024 at 7:42 PM 梦龙董 wrote: > > > > > > [......] > > > > > > I see. > > > I thought you're sharing the trampoline across attachments. > > > (since bpf prog is the same). > > > > That seems to be a good idea, which I hadn't thought before. > > > > > But above approach cannot possibly work with a shared trampoline. > > > You need to create individual trampoline for all attachment > > > and point them to single bpf prog. > > > > > > tbh I'm less excited about this feature now, since sharing > > > the prog across different attachments is nice, but it won't scale > > > to thousands of attachments. > > > I assumed that there will be a single trampoline with max(argno) > > > across attachments and attach/detach will scale to thousands. > > > > > > With individual trampoline this will work for up to a hundred > > > attachments max. > > > > What does "a hundred attachments max" means? Can't I > > trace thousands of kernel functions with a bpf program of > > tracing multi-link? > > I mean what time does it take to attach one program > to 100 fentry-s ? > What is the time for 1k and for 10k ? > > The kprobe multi test attaches to pretty much all funcs in > /sys/kernel/tracing/available_filter_functions > and it's fast enough to run in test_progs on every commit in bpf CI. > See get_syms() in prog_tests/kprobe_multi_test.c > > Can this new multi fentry do that? > and at what speed? > The answer will decide how applicable this api is going to be. > Generating different trampolines for every attach point > is an approach as well. Pls benchmark it too. > > > > > > > Let's step back. > > > What is the exact use case you're trying to solve? > > > Not an artificial one as selftest in patch 9, but the real use case? > > > > I have a tool, which is used to diagnose network problems, > > and its name is "nettrace". It will trace many kernel functions, whose > > function args contain "skb", like this: > > > > ./nettrace -p icmp > > begin trace... > > ***************** ffff889be8fbd500,ffff889be8fbcd00 *************** > > [1272349.614564] [dev_gro_receive ] ICMP: 169.254.128.15 -> > > 172.27.0.6 ping request, seq: 48220 > > [1272349.614579] [__netif_receive_skb_core] ICMP: 169.254.128.15 -> > > 172.27.0.6 ping request, seq: 48220 > > [1272349.614585] [ip_rcv ] ICMP: 169.254.128.15 -> > > 172.27.0.6 ping request, seq: 48220 > > [1272349.614592] [ip_rcv_core ] ICMP: 169.254.128.15 -> > > 172.27.0.6 ping request, seq: 48220 > > [1272349.614599] [skb_clone ] ICMP: 169.254.128.15 -> > > 172.27.0.6 ping request, seq: 48220 > > [1272349.614616] [nf_hook_slow ] ICMP: 169.254.128.15 -> > > 172.27.0.6 ping request, seq: 48220 > > [1272349.614629] [nft_do_chain ] ICMP: 169.254.128.15 -> > > 172.27.0.6 ping request, seq: 48220 > > [1272349.614635] [ip_rcv_finish ] ICMP: 169.254.128.15 -> > > 172.27.0.6 ping request, seq: 48220 > > [1272349.614643] [ip_route_input_slow ] ICMP: 169.254.128.15 -> > > 172.27.0.6 ping request, seq: 48220 > > [1272349.614647] [fib_validate_source ] ICMP: 169.254.128.15 -> > > 172.27.0.6 ping request, seq: 48220 > > [1272349.614652] [ip_local_deliver ] ICMP: 169.254.128.15 -> > > 172.27.0.6 ping request, seq: 48220 > > [1272349.614658] [nf_hook_slow ] ICMP: 169.254.128.15 -> > > 172.27.0.6 ping request, seq: 48220 > > [1272349.614663] [ip_local_deliver_finish] ICMP: 169.254.128.15 -> > > 172.27.0.6 ping request, seq: 48220 > > [1272349.614666] [icmp_rcv ] ICMP: 169.254.128.15 -> > > 172.27.0.6 ping request, seq: 48220 > > [1272349.614671] [icmp_echo ] ICMP: 169.254.128.15 -> > > 172.27.0.6 ping request, seq: 48220 > > [1272349.614675] [icmp_reply ] ICMP: 169.254.128.15 -> > > 172.27.0.6 ping request, seq: 48220 > > [1272349.614715] [consume_skb ] ICMP: 169.254.128.15 -> > > 172.27.0.6 ping request, seq: 48220 > > [1272349.614722] [packet_rcv ] ICMP: 169.254.128.15 -> > > 172.27.0.6 ping request, seq: 48220 > > [1272349.614725] [consume_skb ] ICMP: 169.254.128.15 -> > > 172.27.0.6 ping request, seq: 48220 > > > > For now, I have to create a bpf program for every kernel > > function that I want to trace, which is up to 200. > > > > With this multi-link, I only need to create 5 bpf program, > > like this: > > > > int BPF_PROG(trace_skb_1, struct *skb); > > int BPF_PROG(trace_skb_2, u64 arg0, struct *skb); > > int BPF_PROG(trace_skb_3, u64 arg0, u64 arg1, struct *skb); > > int BPF_PROG(trace_skb_4, u64 arg0, u64 arg1, u64 arg2, struct *skb); > > int BPF_PROG(trace_skb_5, u64 arg0, u64 arg1, u64 arg2, u64 arg3, struct *skb); > > > > Then, I can attach trace_skb_1 to all the kernel functions that > > I want to trace and whose first arg is skb; attach trace_skb_2 to kernel > > functions whose 2nd arg is skb, etc. > > > > Or, I can create only one bpf program and store the index > > of skb to the attachment cookie, and attach this program to all > > the kernel functions that I want to trace. > > > > This is my use case. With the multi-link, now I only have > > 1 bpf program, 1 bpf link, 200 trampolines, instead of 200 > > bpf programs, 200 bpf link and 200 trampolines. > > I see. The use case makes sense to me. > Andrii's retsnoop is used to do similar thing before kprobe multi was > introduced. > > > The shared trampoline you mentioned seems to be a > > wonderful idea, which can make the 200 trampolines > > to one. Let me have a look, we create a trampoline and > > record the max args count of all the target functions, let's > > mark it as arg_count. > > > > During generating the trampoline, we assume that the > > function args count is arg_count. During attaching, we > > check the consistency of all the target functions, just like > > what we do now. > > For one trampoline to handle all attach points we might > need some arch support, but we can start simple. > Make btf_func_model with MAX_BPF_FUNC_REG_ARGS > by calling btf_distill_func_proto() with func==NULL. > And use that to build a trampoline. > > The challenge is how to use minimal number of trampolines > when bpf_progA is attached for func1, func2, func3 > and bpf_progB is attached to func3, func4, func5. > We'd still need 3 trampolines: > for func[12] to call bpf_progA, > for func3 to call bpf_progA and bpf_progB, > for func[45] to call bpf_progB. > > Jiri was trying to solve it in the past. His slides from LPC: > https://lpc.events/event/16/contributions/1350/attachments/1033/1983/plumbers.pdf > > Pls study them and his prior patchsets to avoid stepping on the same rakes. yep, I refrained from commenting not to take you down the same path I did, but if you insist.. ;-) I managed to forgot almost all of it, but the IIRC the main pain point was that at some point I had to split existing trampoline which caused the whole trampolines management and error paths to become a mess I tried to explain things in [1] changelog and the latest patchset is in [0] feel free to use/take anything, but I advice strongly against it ;-) please let me know if I can help jirka [0] https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git/log/?h=bpf/batch [1] https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git/commit/?h=bpf/batch&id=52a1d4acdf55df41e99ca2cea51865e6821036ce 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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E95EDC5475B for ; Thu, 14 Mar 2024 06:28:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:Date:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=F7nKwgLPFIBI8QcGZV9HJqRwb5k3DiDdtHO5NZaGQtc=; b=L0NlUKbqFoySUF zIc43WQMEO4dKcgEiTOd9lDAGk14Oz4XSOsiARFaDrDGfKayjlA+ohFzYOvMf/ongf59K0bzQBzzS qLS8LgKppXT0zdyPmAXy7uHOqXdrFcknQdSPTHzs+GpUwZmsm6qZ2rcbdV+G0kT9t4yUaXl27iAOW lU2GaKHznl+P5tCzsIaiEhXwH610JkJXSlst+zChZ5uLp7oeL0LSPnAc35cQwo9FBsIzyrhGKkKos dMfr1hvq82XTioGAy3Lt8Nqg+szh+m3uwh568/1FOh8yvjx8ZqFs+QM8phvQKTBzJcPsr6dAU8HOp 20yQYpm3grys92/nb5Sg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rkeZS-0000000DDlD-1dqq; Thu, 14 Mar 2024 06:28:06 +0000 Received: from mail-ej1-x635.google.com ([2a00:1450:4864:20::635]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rkeZM-0000000DDjJ-0cb1; Thu, 14 Mar 2024 06:28:03 +0000 Received: by mail-ej1-x635.google.com with SMTP id a640c23a62f3a-a45bb2a9c20so52403966b.0; Wed, 13 Mar 2024 23:27:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710397676; x=1711002476; darn=lists.infradead.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:date:from:from:to :cc:subject:date:message-id:reply-to; bh=Wy48BMq7k7tUA5PbAAKgjU/lgoVJFz6MN9TbVJQFsQM=; b=OK3CHH30kXrEqjFDVlfxVWQkFBFDUrcYM1ANNc+coYwZFx1znemqPRV7YJiHEOt3OM OOm0LvWiXKuK4/8eHXOVQDtPuWV2zTuXixOkCWysHeNG+PTnT50DH6sYJR8layX/tzMC BQqZdDl4ig5512s945pHXgnnhcD2VCJ5sUJppKTVJen13Lvj3Ycp5gfeiiLe9dA2BXtZ eOTHr9nedhxn6VSS9TA0/pxlXQKqlCX4HyhU8QOOxfJB54OW2KQ+V3E+ffdFSeKFtOiH P0c+XyBj0u9VI5ELUTWMQ44nP3LTHnanRGL448LKo4G4UkL86eVOhxhvJovovSIRu7ut pIUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710397676; x=1711002476; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:date:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Wy48BMq7k7tUA5PbAAKgjU/lgoVJFz6MN9TbVJQFsQM=; b=QOkHZfLGfJrzkbrsSQ20nq02BSI0IPE/TxQHM7LhvUN/FlSK0q45h3JsR3hnLWiaIP hwnnIT6zsOPWV0gYS9qANNGfR5f4QMhecL5i4DdNJpYketE/H+W22Vx6A8CL89iQO0m7 Hd6cEnpDrDwBQ0Z8oqYBTqHcltre6SSdO3bJUClAuPqM1lT29bBCFUPKcB/ciG81MDOE Pz+rNaSgBKqsWNHBIobn5/UYjbMjQ+P5/j3Q3ohrl9pYNJR9XCmBBvNwdphg85HE6pSj rSeXVk6l3rIbd0wGzy+qZyTTZvQ5h4l7ckolglG5jQ9ukOuGCC+AFOqMkayHRDl3WQ5Y JYFA== X-Forwarded-Encrypted: i=1; AJvYcCWaC2Q3mXmKPRyxxHXbSrApUSugKgTFpcn0bPSW3jYyPT6rJE/wfJTmgJU+K0uKYRySg9MXXPshDeS0pRU0RX2qMMtrhG5RLO8eMJM+Cnk8PwXaT6DHdORSO/4LXYoLW8lH/r/4e4akkM+ksYtH6iqAfcUKFRA= X-Gm-Message-State: AOJu0YyLdOR/DtMPxOjdlbI6yDwlD+OBX6HSh0sohD/b9mabUJkzFhxf 8twD2/yC3+JHEdK/RoItZjaMKq0NkJFfI1zx/OYSyqCZokPj1Teu X-Google-Smtp-Source: AGHT+IF0pnR3t8OP32CidAqcEwLWVf5pxREHuVK53gI8rH7KwaQf04P9Mb0+ZaiK2iVNQgj+ScQKXQ== X-Received: by 2002:a17:906:b899:b0:a3f:5ad2:1ff0 with SMTP id hb25-20020a170906b89900b00a3f5ad21ff0mr391041ejb.46.1710397675813; Wed, 13 Mar 2024 23:27:55 -0700 (PDT) Received: from krava (2001-1ae9-1c2-4c00-726e-c10f-8833-ff22.ip6.tmcz.cz. [2001:1ae9:1c2:4c00:726e:c10f:8833:ff22]) by smtp.gmail.com with ESMTPSA id ld8-20020a170906f94800b00a46754900a4sm104587ejb.33.2024.03.13.23.27.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Mar 2024 23:27:55 -0700 (PDT) From: Jiri Olsa X-Google-Original-From: Jiri Olsa Date: Thu, 14 Mar 2024 07:27:52 +0100 To: Alexei Starovoitov Cc: =?utf-8?B?5qKm6b6Z6JGj?= , Andrii Nakryiko , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Eddy Z , Song Liu , Yonghong Song , John Fastabend , KP Singh , Stanislav Fomichev , Hao Luo , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , "David S. Miller" , David Ahern , Dave Hansen , X86 ML , Steven Rostedt , Mathieu Desnoyers , Quentin Monnet , bpf , linux-arm-kernel , LKML , linux-riscv , linux-s390 , Network Development , linux-trace-kernel@vger.kernel.org, "open list:KERNEL SELFTEST FRAMEWORK" , linux-stm32@st-md-mailman.stormreply.com Subject: Re: [External] Re: [PATCH bpf-next v2 1/9] bpf: tracing: add support to record and check the accessed args Message-ID: References: <20240311093526.1010158-1-dongmenglong.8@bytedance.com> <20240311093526.1010158-2-dongmenglong.8@bytedance.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240313_232800_235249_9686818E X-CRM114-Status: GOOD ( 42.36 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gV2VkLCBNYXIgMTMsIDIwMjQgYXQgMDU6MjU6MzVQTSAtMDcwMCwgQWxleGVpIFN0YXJvdm9p dG92IHdyb3RlOgo+IE9uIFR1ZSwgTWFyIDEyLCAyMDI0IGF0IDY6NTPigK9QTSDmoqbpvpnokaMg PGRvbmdtZW5nbG9uZy44QGJ5dGVkYW5jZS5jb20+IHdyb3RlOgo+ID4KPiA+IE9uIFdlZCwgTWFy IDEzLCAyMDI0IGF0IDEyOjQy4oCvQU0gQWxleGVpIFN0YXJvdm9pdG92Cj4gPiA8YWxleGVpLnN0 YXJvdm9pdG92QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+Cj4gPiA+IE9uIE1vbiwgTWFyIDExLCAy MDI0IGF0IDc6NDLigK9QTSDmoqbpvpnokaMgPGRvbmdtZW5nbG9uZy44QGJ5dGVkYW5jZS5jb20+ IHdyb3RlOgo+ID4gPiA+Cj4gPiBbLi4uLi4uXQo+ID4gPgo+ID4gPiBJIHNlZS4KPiA+ID4gSSB0 aG91Z2h0IHlvdSdyZSBzaGFyaW5nIHRoZSB0cmFtcG9saW5lIGFjcm9zcyBhdHRhY2htZW50cy4K PiA+ID4gKHNpbmNlIGJwZiBwcm9nIGlzIHRoZSBzYW1lKS4KPiA+Cj4gPiBUaGF0IHNlZW1zIHRv IGJlIGEgZ29vZCBpZGVhLCB3aGljaCBJIGhhZG4ndCB0aG91Z2h0IGJlZm9yZS4KPiA+Cj4gPiA+ IEJ1dCBhYm92ZSBhcHByb2FjaCBjYW5ub3QgcG9zc2libHkgd29yayB3aXRoIGEgc2hhcmVkIHRy YW1wb2xpbmUuCj4gPiA+IFlvdSBuZWVkIHRvIGNyZWF0ZSBpbmRpdmlkdWFsIHRyYW1wb2xpbmUg Zm9yIGFsbCBhdHRhY2htZW50Cj4gPiA+IGFuZCBwb2ludCB0aGVtIHRvIHNpbmdsZSBicGYgcHJv Zy4KPiA+ID4KPiA+ID4gdGJoIEknbSBsZXNzIGV4Y2l0ZWQgYWJvdXQgdGhpcyBmZWF0dXJlIG5v dywgc2luY2Ugc2hhcmluZwo+ID4gPiB0aGUgcHJvZyBhY3Jvc3MgZGlmZmVyZW50IGF0dGFjaG1l bnRzIGlzIG5pY2UsIGJ1dCBpdCB3b24ndCBzY2FsZQo+ID4gPiB0byB0aG91c2FuZHMgb2YgYXR0 YWNobWVudHMuCj4gPiA+IEkgYXNzdW1lZCB0aGF0IHRoZXJlIHdpbGwgYmUgYSBzaW5nbGUgdHJh bXBvbGluZSB3aXRoIG1heChhcmdubykKPiA+ID4gYWNyb3NzIGF0dGFjaG1lbnRzIGFuZCBhdHRh Y2gvZGV0YWNoIHdpbGwgc2NhbGUgdG8gdGhvdXNhbmRzLgo+ID4gPgo+ID4gPiBXaXRoIGluZGl2 aWR1YWwgdHJhbXBvbGluZSB0aGlzIHdpbGwgd29yayBmb3IgdXAgdG8gYSBodW5kcmVkCj4gPiA+ IGF0dGFjaG1lbnRzIG1heC4KPiA+Cj4gPiBXaGF0IGRvZXMgImEgaHVuZHJlZCBhdHRhY2htZW50 cyBtYXgiIG1lYW5zPyBDYW4ndCBJCj4gPiB0cmFjZSB0aG91c2FuZHMgb2Yga2VybmVsIGZ1bmN0 aW9ucyB3aXRoIGEgYnBmIHByb2dyYW0gb2YKPiA+IHRyYWNpbmcgbXVsdGktbGluaz8KPiAKPiBJ IG1lYW4gd2hhdCB0aW1lIGRvZXMgaXQgdGFrZSB0byBhdHRhY2ggb25lIHByb2dyYW0KPiB0byAx MDAgZmVudHJ5LXMgPwo+IFdoYXQgaXMgdGhlIHRpbWUgZm9yIDFrIGFuZCBmb3IgMTBrID8KPiAK PiBUaGUga3Byb2JlIG11bHRpIHRlc3QgYXR0YWNoZXMgdG8gcHJldHR5IG11Y2ggYWxsIGZ1bmNz IGluCj4gL3N5cy9rZXJuZWwvdHJhY2luZy9hdmFpbGFibGVfZmlsdGVyX2Z1bmN0aW9ucwo+IGFu ZCBpdCdzIGZhc3QgZW5vdWdoIHRvIHJ1biBpbiB0ZXN0X3Byb2dzIG9uIGV2ZXJ5IGNvbW1pdCBp biBicGYgQ0kuCj4gU2VlIGdldF9zeW1zKCkgaW4gcHJvZ190ZXN0cy9rcHJvYmVfbXVsdGlfdGVz dC5jCj4gCj4gQ2FuIHRoaXMgbmV3IG11bHRpIGZlbnRyeSBkbyB0aGF0Pwo+IGFuZCBhdCB3aGF0 IHNwZWVkPwo+IFRoZSBhbnN3ZXIgd2lsbCBkZWNpZGUgaG93IGFwcGxpY2FibGUgdGhpcyBhcGkg aXMgZ29pbmcgdG8gYmUuCj4gR2VuZXJhdGluZyBkaWZmZXJlbnQgdHJhbXBvbGluZXMgZm9yIGV2 ZXJ5IGF0dGFjaCBwb2ludAo+IGlzIGFuIGFwcHJvYWNoIGFzIHdlbGwuIFBscyBiZW5jaG1hcmsg aXQgdG9vLgo+IAo+ID4gPgo+ID4gPiBMZXQncyBzdGVwIGJhY2suCj4gPiA+IFdoYXQgaXMgdGhl IGV4YWN0IHVzZSBjYXNlIHlvdSdyZSB0cnlpbmcgdG8gc29sdmU/Cj4gPiA+IE5vdCBhbiBhcnRp ZmljaWFsIG9uZSBhcyBzZWxmdGVzdCBpbiBwYXRjaCA5LCBidXQgdGhlIHJlYWwgdXNlIGNhc2U/ Cj4gPgo+ID4gSSBoYXZlIGEgdG9vbCwgd2hpY2ggaXMgdXNlZCB0byBkaWFnbm9zZSBuZXR3b3Jr IHByb2JsZW1zLAo+ID4gYW5kIGl0cyBuYW1lIGlzICJuZXR0cmFjZSIuIEl0IHdpbGwgdHJhY2Ug bWFueSBrZXJuZWwgZnVuY3Rpb25zLCB3aG9zZQo+ID4gZnVuY3Rpb24gYXJncyBjb250YWluICJz a2IiLCBsaWtlIHRoaXM6Cj4gPgo+ID4gLi9uZXR0cmFjZSAtcCBpY21wCj4gPiBiZWdpbiB0cmFj ZS4uLgo+ID4gKioqKioqKioqKioqKioqKiogZmZmZjg4OWJlOGZiZDUwMCxmZmZmODg5YmU4ZmJj ZDAwICoqKioqKioqKioqKioqKgo+ID4gWzEyNzIzNDkuNjE0NTY0XSBbZGV2X2dyb19yZWNlaXZl ICAgICBdIElDTVA6IDE2OS4yNTQuMTI4LjE1IC0+Cj4gPiAxNzIuMjcuMC42IHBpbmcgcmVxdWVz dCwgc2VxOiA0ODIyMAo+ID4gWzEyNzIzNDkuNjE0NTc5XSBbX19uZXRpZl9yZWNlaXZlX3NrYl9j b3JlXSBJQ01QOiAxNjkuMjU0LjEyOC4xNSAtPgo+ID4gMTcyLjI3LjAuNiBwaW5nIHJlcXVlc3Qs IHNlcTogNDgyMjAKPiA+IFsxMjcyMzQ5LjYxNDU4NV0gW2lwX3JjdiAgICAgICAgICAgICAgXSBJ Q01QOiAxNjkuMjU0LjEyOC4xNSAtPgo+ID4gMTcyLjI3LjAuNiBwaW5nIHJlcXVlc3QsIHNlcTog NDgyMjAKPiA+IFsxMjcyMzQ5LjYxNDU5Ml0gW2lwX3Jjdl9jb3JlICAgICAgICAgXSBJQ01QOiAx NjkuMjU0LjEyOC4xNSAtPgo+ID4gMTcyLjI3LjAuNiBwaW5nIHJlcXVlc3QsIHNlcTogNDgyMjAK PiA+IFsxMjcyMzQ5LjYxNDU5OV0gW3NrYl9jbG9uZSAgICAgICAgICAgXSBJQ01QOiAxNjkuMjU0 LjEyOC4xNSAtPgo+ID4gMTcyLjI3LjAuNiBwaW5nIHJlcXVlc3QsIHNlcTogNDgyMjAKPiA+IFsx MjcyMzQ5LjYxNDYxNl0gW25mX2hvb2tfc2xvdyAgICAgICAgXSBJQ01QOiAxNjkuMjU0LjEyOC4x NSAtPgo+ID4gMTcyLjI3LjAuNiBwaW5nIHJlcXVlc3QsIHNlcTogNDgyMjAKPiA+IFsxMjcyMzQ5 LjYxNDYyOV0gW25mdF9kb19jaGFpbiAgICAgICAgXSBJQ01QOiAxNjkuMjU0LjEyOC4xNSAtPgo+ ID4gMTcyLjI3LjAuNiBwaW5nIHJlcXVlc3QsIHNlcTogNDgyMjAKPiA+IFsxMjcyMzQ5LjYxNDYz NV0gW2lwX3Jjdl9maW5pc2ggICAgICAgXSBJQ01QOiAxNjkuMjU0LjEyOC4xNSAtPgo+ID4gMTcy LjI3LjAuNiBwaW5nIHJlcXVlc3QsIHNlcTogNDgyMjAKPiA+IFsxMjcyMzQ5LjYxNDY0M10gW2lw X3JvdXRlX2lucHV0X3Nsb3cgXSBJQ01QOiAxNjkuMjU0LjEyOC4xNSAtPgo+ID4gMTcyLjI3LjAu NiBwaW5nIHJlcXVlc3QsIHNlcTogNDgyMjAKPiA+IFsxMjcyMzQ5LjYxNDY0N10gW2ZpYl92YWxp ZGF0ZV9zb3VyY2UgXSBJQ01QOiAxNjkuMjU0LjEyOC4xNSAtPgo+ID4gMTcyLjI3LjAuNiBwaW5n IHJlcXVlc3QsIHNlcTogNDgyMjAKPiA+IFsxMjcyMzQ5LjYxNDY1Ml0gW2lwX2xvY2FsX2RlbGl2 ZXIgICAgXSBJQ01QOiAxNjkuMjU0LjEyOC4xNSAtPgo+ID4gMTcyLjI3LjAuNiBwaW5nIHJlcXVl c3QsIHNlcTogNDgyMjAKPiA+IFsxMjcyMzQ5LjYxNDY1OF0gW25mX2hvb2tfc2xvdyAgICAgICAg XSBJQ01QOiAxNjkuMjU0LjEyOC4xNSAtPgo+ID4gMTcyLjI3LjAuNiBwaW5nIHJlcXVlc3QsIHNl cTogNDgyMjAKPiA+IFsxMjcyMzQ5LjYxNDY2M10gW2lwX2xvY2FsX2RlbGl2ZXJfZmluaXNoXSBJ Q01QOiAxNjkuMjU0LjEyOC4xNSAtPgo+ID4gMTcyLjI3LjAuNiBwaW5nIHJlcXVlc3QsIHNlcTog NDgyMjAKPiA+IFsxMjcyMzQ5LjYxNDY2Nl0gW2ljbXBfcmN2ICAgICAgICAgICAgXSBJQ01QOiAx NjkuMjU0LjEyOC4xNSAtPgo+ID4gMTcyLjI3LjAuNiBwaW5nIHJlcXVlc3QsIHNlcTogNDgyMjAK PiA+IFsxMjcyMzQ5LjYxNDY3MV0gW2ljbXBfZWNobyAgICAgICAgICAgXSBJQ01QOiAxNjkuMjU0 LjEyOC4xNSAtPgo+ID4gMTcyLjI3LjAuNiBwaW5nIHJlcXVlc3QsIHNlcTogNDgyMjAKPiA+IFsx MjcyMzQ5LjYxNDY3NV0gW2ljbXBfcmVwbHkgICAgICAgICAgXSBJQ01QOiAxNjkuMjU0LjEyOC4x NSAtPgo+ID4gMTcyLjI3LjAuNiBwaW5nIHJlcXVlc3QsIHNlcTogNDgyMjAKPiA+IFsxMjcyMzQ5 LjYxNDcxNV0gW2NvbnN1bWVfc2tiICAgICAgICAgXSBJQ01QOiAxNjkuMjU0LjEyOC4xNSAtPgo+ ID4gMTcyLjI3LjAuNiBwaW5nIHJlcXVlc3QsIHNlcTogNDgyMjAKPiA+IFsxMjcyMzQ5LjYxNDcy Ml0gW3BhY2tldF9yY3YgICAgICAgICAgXSBJQ01QOiAxNjkuMjU0LjEyOC4xNSAtPgo+ID4gMTcy LjI3LjAuNiBwaW5nIHJlcXVlc3QsIHNlcTogNDgyMjAKPiA+IFsxMjcyMzQ5LjYxNDcyNV0gW2Nv bnN1bWVfc2tiICAgICAgICAgXSBJQ01QOiAxNjkuMjU0LjEyOC4xNSAtPgo+ID4gMTcyLjI3LjAu NiBwaW5nIHJlcXVlc3QsIHNlcTogNDgyMjAKPiA+Cj4gPiBGb3Igbm93LCBJIGhhdmUgdG8gY3Jl YXRlIGEgYnBmIHByb2dyYW0gZm9yIGV2ZXJ5IGtlcm5lbAo+ID4gZnVuY3Rpb24gdGhhdCBJIHdh bnQgdG8gdHJhY2UsIHdoaWNoIGlzIHVwIHRvIDIwMC4KPiA+Cj4gPiBXaXRoIHRoaXMgbXVsdGkt bGluaywgSSBvbmx5IG5lZWQgdG8gY3JlYXRlIDUgYnBmIHByb2dyYW0sCj4gPiBsaWtlIHRoaXM6 Cj4gPgo+ID4gaW50IEJQRl9QUk9HKHRyYWNlX3NrYl8xLCBzdHJ1Y3QgKnNrYik7Cj4gPiBpbnQg QlBGX1BST0codHJhY2Vfc2tiXzIsIHU2NCBhcmcwLCBzdHJ1Y3QgKnNrYik7Cj4gPiBpbnQgQlBG X1BST0codHJhY2Vfc2tiXzMsIHU2NCBhcmcwLCB1NjQgYXJnMSwgc3RydWN0ICpza2IpOwo+ID4g aW50IEJQRl9QUk9HKHRyYWNlX3NrYl80LCB1NjQgYXJnMCwgdTY0IGFyZzEsIHU2NCBhcmcyLCBz dHJ1Y3QgKnNrYik7Cj4gPiBpbnQgQlBGX1BST0codHJhY2Vfc2tiXzUsIHU2NCBhcmcwLCB1NjQg YXJnMSwgdTY0IGFyZzIsIHU2NCBhcmczLCBzdHJ1Y3QgKnNrYik7Cj4gPgo+ID4gVGhlbiwgSSBj YW4gYXR0YWNoIHRyYWNlX3NrYl8xIHRvIGFsbCB0aGUga2VybmVsIGZ1bmN0aW9ucyB0aGF0Cj4g PiBJIHdhbnQgdG8gdHJhY2UgYW5kIHdob3NlIGZpcnN0IGFyZyBpcyBza2I7IGF0dGFjaCB0cmFj ZV9za2JfMiB0byBrZXJuZWwKPiA+IGZ1bmN0aW9ucyB3aG9zZSAybmQgYXJnIGlzIHNrYiwgZXRj Lgo+ID4KPiA+IE9yLCBJIGNhbiBjcmVhdGUgb25seSBvbmUgYnBmIHByb2dyYW0gYW5kIHN0b3Jl IHRoZSBpbmRleAo+ID4gb2Ygc2tiIHRvIHRoZSBhdHRhY2htZW50IGNvb2tpZSwgYW5kIGF0dGFj aCB0aGlzIHByb2dyYW0gdG8gYWxsCj4gPiB0aGUga2VybmVsIGZ1bmN0aW9ucyB0aGF0IEkgd2Fu dCB0byB0cmFjZS4KPiA+Cj4gPiBUaGlzIGlzIG15IHVzZSBjYXNlLiBXaXRoIHRoZSBtdWx0aS1s aW5rLCBub3cgSSBvbmx5IGhhdmUKPiA+IDEgYnBmIHByb2dyYW0sIDEgYnBmIGxpbmssIDIwMCB0 cmFtcG9saW5lcywgaW5zdGVhZCBvZiAyMDAKPiA+IGJwZiBwcm9ncmFtcywgMjAwIGJwZiBsaW5r IGFuZCAyMDAgdHJhbXBvbGluZXMuCj4gCj4gSSBzZWUuIFRoZSB1c2UgY2FzZSBtYWtlcyBzZW5z ZSB0byBtZS4KPiBBbmRyaWkncyByZXRzbm9vcCBpcyB1c2VkIHRvIGRvIHNpbWlsYXIgdGhpbmcg YmVmb3JlIGtwcm9iZSBtdWx0aSB3YXMKPiBpbnRyb2R1Y2VkLgo+IAo+ID4gVGhlIHNoYXJlZCB0 cmFtcG9saW5lIHlvdSBtZW50aW9uZWQgc2VlbXMgdG8gYmUgYQo+ID4gd29uZGVyZnVsIGlkZWEs IHdoaWNoIGNhbiBtYWtlIHRoZSAyMDAgdHJhbXBvbGluZXMKPiA+IHRvIG9uZS4gTGV0IG1lIGhh dmUgYSBsb29rLCB3ZSBjcmVhdGUgYSB0cmFtcG9saW5lIGFuZAo+ID4gcmVjb3JkIHRoZSBtYXgg YXJncyBjb3VudCBvZiBhbGwgdGhlIHRhcmdldCBmdW5jdGlvbnMsIGxldCdzCj4gPiBtYXJrIGl0 IGFzIGFyZ19jb3VudC4KPiA+Cj4gPiBEdXJpbmcgZ2VuZXJhdGluZyB0aGUgdHJhbXBvbGluZSwg d2UgYXNzdW1lIHRoYXQgdGhlCj4gPiBmdW5jdGlvbiBhcmdzIGNvdW50IGlzIGFyZ19jb3VudC4g RHVyaW5nIGF0dGFjaGluZywgd2UKPiA+IGNoZWNrIHRoZSBjb25zaXN0ZW5jeSBvZiBhbGwgdGhl IHRhcmdldCBmdW5jdGlvbnMsIGp1c3QgbGlrZQo+ID4gd2hhdCB3ZSBkbyBub3cuCj4gCj4gRm9y IG9uZSB0cmFtcG9saW5lIHRvIGhhbmRsZSBhbGwgYXR0YWNoIHBvaW50cyB3ZSBtaWdodAo+IG5l ZWQgc29tZSBhcmNoIHN1cHBvcnQsIGJ1dCB3ZSBjYW4gc3RhcnQgc2ltcGxlLgo+IE1ha2UgYnRm X2Z1bmNfbW9kZWwgd2l0aCBNQVhfQlBGX0ZVTkNfUkVHX0FSR1MKPiBieSBjYWxsaW5nIGJ0Zl9k aXN0aWxsX2Z1bmNfcHJvdG8oKSB3aXRoIGZ1bmM9PU5VTEwuCj4gQW5kIHVzZSB0aGF0IHRvIGJ1 aWxkIGEgdHJhbXBvbGluZS4KPiAKPiBUaGUgY2hhbGxlbmdlIGlzIGhvdyB0byB1c2UgbWluaW1h bCBudW1iZXIgb2YgdHJhbXBvbGluZXMKPiB3aGVuIGJwZl9wcm9nQSBpcyBhdHRhY2hlZCBmb3Ig ZnVuYzEsIGZ1bmMyLCBmdW5jMwo+IGFuZCBicGZfcHJvZ0IgaXMgYXR0YWNoZWQgdG8gZnVuYzMs IGZ1bmM0LCBmdW5jNS4KPiBXZSdkIHN0aWxsIG5lZWQgMyB0cmFtcG9saW5lczoKPiBmb3IgZnVu Y1sxMl0gdG8gY2FsbCBicGZfcHJvZ0EsCj4gZm9yIGZ1bmMzIHRvIGNhbGwgYnBmX3Byb2dBIGFu ZCBicGZfcHJvZ0IsCj4gZm9yIGZ1bmNbNDVdIHRvIGNhbGwgYnBmX3Byb2dCLgo+IAo+IEppcmkg d2FzIHRyeWluZyB0byBzb2x2ZSBpdCBpbiB0aGUgcGFzdC4gSGlzIHNsaWRlcyBmcm9tIExQQzoK PiBodHRwczovL2xwYy5ldmVudHMvZXZlbnQvMTYvY29udHJpYnV0aW9ucy8xMzUwL2F0dGFjaG1l bnRzLzEwMzMvMTk4My9wbHVtYmVycy5wZGYKPiAKPiBQbHMgc3R1ZHkgdGhlbSBhbmQgaGlzIHBy aW9yIHBhdGNoc2V0cyB0byBhdm9pZCBzdGVwcGluZyBvbiB0aGUgc2FtZSByYWtlcy4KCnllcCwg SSByZWZyYWluZWQgZnJvbSBjb21tZW50aW5nIG5vdCB0byB0YWtlIHlvdSBkb3duIHRoZSBzYW1l IHBhdGgKSSBkaWQsIGJ1dCBpZiB5b3UgaW5zaXN0Li4gOy0pIAoKSSBtYW5hZ2VkIHRvIGZvcmdv dCBhbG1vc3QgYWxsIG9mIGl0LCBidXQgdGhlIElJUkMgdGhlIG1haW4gcGFpbiBwb2ludAp3YXMg dGhhdCBhdCBzb21lIHBvaW50IEkgaGFkIHRvIHNwbGl0IGV4aXN0aW5nIHRyYW1wb2xpbmUgd2hp Y2ggY2F1c2VkCnRoZSB3aG9sZSB0cmFtcG9saW5lcyBtYW5hZ2VtZW50IGFuZCBlcnJvciBwYXRo cyB0byBiZWNvbWUgYSBtZXNzCgpJIHRyaWVkIHRvIGV4cGxhaW4gdGhpbmdzIGluIFsxXSBjaGFu Z2Vsb2cgYW5kIHRoZSBsYXRlc3QgcGF0Y2hzZXQgaXMgaW4gWzBdCgpmZWVsIGZyZWUgdG8gdXNl L3Rha2UgYW55dGhpbmcsIGJ1dCBJIGFkdmljZSBzdHJvbmdseSBhZ2FpbnN0IGl0IDstKQpwbGVh c2UgbGV0IG1lIGtub3cgaWYgSSBjYW4gaGVscAoKamlya2EKCgpbMF0gaHR0cHM6Ly9naXQua2Vy bmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvam9sc2EvcGVyZi5naXQvbG9nLz9oPWJw Zi9iYXRjaApbMV0gaHR0cHM6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9n aXQvam9sc2EvcGVyZi5naXQvY29tbWl0Lz9oPWJwZi9iYXRjaCZpZD01MmExZDRhY2RmNTVkZjQx ZTk5Y2EyY2VhNTE4NjVlNjgyMTAzNmNlCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGludXgtcmlzY3ZAbGlz dHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2xpbnV4LXJpc2N2Cg== 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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 59107C5475B for ; Thu, 14 Mar 2024 06:28:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:Date:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=NtttkrEGvrcIa8oi8h/v0ZhG0SI1rwWn0lqCHWBxmwk=; b=17jyXzAQ/nvacc ZBvW/gdeDhm30fBRksjdAyH7eq2CXuqKVpsk62ztslJofNinQFLE6jN8nKBHbs3W7nPxkjumBu78H qG+/c6Ot+g8UCITC7hjE8IEEahVt6fqVw6kQDUbq2P966cXgpnKocKbGUCVZCX5YcYBlsp3S06f2j 0eQSj4mELz1bFarr4s7h4fW/vynFybOt3WMD6xAIwcmHDVKmfKaQIoKWxtHAQFnE2F0oiBDMiqgnc Y0ujw6o07QNOtwQaSTA/7ycK5IkZm93//uysuLDS2/AHsahmkwd/Q1/47Rs+cxkLHHxv7iSpk6lr6 cadjmPJ47B9LuFz9vZ0Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rkeZR-0000000DDku-2N0u; Thu, 14 Mar 2024 06:28:05 +0000 Received: from mail-ej1-x635.google.com ([2a00:1450:4864:20::635]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rkeZM-0000000DDjJ-0cb1; Thu, 14 Mar 2024 06:28:03 +0000 Received: by mail-ej1-x635.google.com with SMTP id a640c23a62f3a-a45bb2a9c20so52403966b.0; Wed, 13 Mar 2024 23:27:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710397676; x=1711002476; darn=lists.infradead.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:date:from:from:to :cc:subject:date:message-id:reply-to; bh=Wy48BMq7k7tUA5PbAAKgjU/lgoVJFz6MN9TbVJQFsQM=; b=OK3CHH30kXrEqjFDVlfxVWQkFBFDUrcYM1ANNc+coYwZFx1znemqPRV7YJiHEOt3OM OOm0LvWiXKuK4/8eHXOVQDtPuWV2zTuXixOkCWysHeNG+PTnT50DH6sYJR8layX/tzMC BQqZdDl4ig5512s945pHXgnnhcD2VCJ5sUJppKTVJen13Lvj3Ycp5gfeiiLe9dA2BXtZ eOTHr9nedhxn6VSS9TA0/pxlXQKqlCX4HyhU8QOOxfJB54OW2KQ+V3E+ffdFSeKFtOiH P0c+XyBj0u9VI5ELUTWMQ44nP3LTHnanRGL448LKo4G4UkL86eVOhxhvJovovSIRu7ut pIUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710397676; x=1711002476; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:date:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Wy48BMq7k7tUA5PbAAKgjU/lgoVJFz6MN9TbVJQFsQM=; b=QOkHZfLGfJrzkbrsSQ20nq02BSI0IPE/TxQHM7LhvUN/FlSK0q45h3JsR3hnLWiaIP hwnnIT6zsOPWV0gYS9qANNGfR5f4QMhecL5i4DdNJpYketE/H+W22Vx6A8CL89iQO0m7 Hd6cEnpDrDwBQ0Z8oqYBTqHcltre6SSdO3bJUClAuPqM1lT29bBCFUPKcB/ciG81MDOE Pz+rNaSgBKqsWNHBIobn5/UYjbMjQ+P5/j3Q3ohrl9pYNJR9XCmBBvNwdphg85HE6pSj rSeXVk6l3rIbd0wGzy+qZyTTZvQ5h4l7ckolglG5jQ9ukOuGCC+AFOqMkayHRDl3WQ5Y JYFA== X-Forwarded-Encrypted: i=1; AJvYcCWaC2Q3mXmKPRyxxHXbSrApUSugKgTFpcn0bPSW3jYyPT6rJE/wfJTmgJU+K0uKYRySg9MXXPshDeS0pRU0RX2qMMtrhG5RLO8eMJM+Cnk8PwXaT6DHdORSO/4LXYoLW8lH/r/4e4akkM+ksYtH6iqAfcUKFRA= X-Gm-Message-State: AOJu0YyLdOR/DtMPxOjdlbI6yDwlD+OBX6HSh0sohD/b9mabUJkzFhxf 8twD2/yC3+JHEdK/RoItZjaMKq0NkJFfI1zx/OYSyqCZokPj1Teu X-Google-Smtp-Source: AGHT+IF0pnR3t8OP32CidAqcEwLWVf5pxREHuVK53gI8rH7KwaQf04P9Mb0+ZaiK2iVNQgj+ScQKXQ== X-Received: by 2002:a17:906:b899:b0:a3f:5ad2:1ff0 with SMTP id hb25-20020a170906b89900b00a3f5ad21ff0mr391041ejb.46.1710397675813; Wed, 13 Mar 2024 23:27:55 -0700 (PDT) Received: from krava (2001-1ae9-1c2-4c00-726e-c10f-8833-ff22.ip6.tmcz.cz. [2001:1ae9:1c2:4c00:726e:c10f:8833:ff22]) by smtp.gmail.com with ESMTPSA id ld8-20020a170906f94800b00a46754900a4sm104587ejb.33.2024.03.13.23.27.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Mar 2024 23:27:55 -0700 (PDT) From: Jiri Olsa X-Google-Original-From: Jiri Olsa Date: Thu, 14 Mar 2024 07:27:52 +0100 To: Alexei Starovoitov Cc: =?utf-8?B?5qKm6b6Z6JGj?= , Andrii Nakryiko , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Eddy Z , Song Liu , Yonghong Song , John Fastabend , KP Singh , Stanislav Fomichev , Hao Luo , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , "David S. Miller" , David Ahern , Dave Hansen , X86 ML , Steven Rostedt , Mathieu Desnoyers , Quentin Monnet , bpf , linux-arm-kernel , LKML , linux-riscv , linux-s390 , Network Development , linux-trace-kernel@vger.kernel.org, "open list:KERNEL SELFTEST FRAMEWORK" , linux-stm32@st-md-mailman.stormreply.com Subject: Re: [External] Re: [PATCH bpf-next v2 1/9] bpf: tracing: add support to record and check the accessed args Message-ID: References: <20240311093526.1010158-1-dongmenglong.8@bytedance.com> <20240311093526.1010158-2-dongmenglong.8@bytedance.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240313_232800_235249_9686818E X-CRM114-Status: GOOD ( 42.36 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gV2VkLCBNYXIgMTMsIDIwMjQgYXQgMDU6MjU6MzVQTSAtMDcwMCwgQWxleGVpIFN0YXJvdm9p dG92IHdyb3RlOgo+IE9uIFR1ZSwgTWFyIDEyLCAyMDI0IGF0IDY6NTPigK9QTSDmoqbpvpnokaMg PGRvbmdtZW5nbG9uZy44QGJ5dGVkYW5jZS5jb20+IHdyb3RlOgo+ID4KPiA+IE9uIFdlZCwgTWFy IDEzLCAyMDI0IGF0IDEyOjQy4oCvQU0gQWxleGVpIFN0YXJvdm9pdG92Cj4gPiA8YWxleGVpLnN0 YXJvdm9pdG92QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+Cj4gPiA+IE9uIE1vbiwgTWFyIDExLCAy MDI0IGF0IDc6NDLigK9QTSDmoqbpvpnokaMgPGRvbmdtZW5nbG9uZy44QGJ5dGVkYW5jZS5jb20+ IHdyb3RlOgo+ID4gPiA+Cj4gPiBbLi4uLi4uXQo+ID4gPgo+ID4gPiBJIHNlZS4KPiA+ID4gSSB0 aG91Z2h0IHlvdSdyZSBzaGFyaW5nIHRoZSB0cmFtcG9saW5lIGFjcm9zcyBhdHRhY2htZW50cy4K PiA+ID4gKHNpbmNlIGJwZiBwcm9nIGlzIHRoZSBzYW1lKS4KPiA+Cj4gPiBUaGF0IHNlZW1zIHRv IGJlIGEgZ29vZCBpZGVhLCB3aGljaCBJIGhhZG4ndCB0aG91Z2h0IGJlZm9yZS4KPiA+Cj4gPiA+ IEJ1dCBhYm92ZSBhcHByb2FjaCBjYW5ub3QgcG9zc2libHkgd29yayB3aXRoIGEgc2hhcmVkIHRy YW1wb2xpbmUuCj4gPiA+IFlvdSBuZWVkIHRvIGNyZWF0ZSBpbmRpdmlkdWFsIHRyYW1wb2xpbmUg Zm9yIGFsbCBhdHRhY2htZW50Cj4gPiA+IGFuZCBwb2ludCB0aGVtIHRvIHNpbmdsZSBicGYgcHJv Zy4KPiA+ID4KPiA+ID4gdGJoIEknbSBsZXNzIGV4Y2l0ZWQgYWJvdXQgdGhpcyBmZWF0dXJlIG5v dywgc2luY2Ugc2hhcmluZwo+ID4gPiB0aGUgcHJvZyBhY3Jvc3MgZGlmZmVyZW50IGF0dGFjaG1l bnRzIGlzIG5pY2UsIGJ1dCBpdCB3b24ndCBzY2FsZQo+ID4gPiB0byB0aG91c2FuZHMgb2YgYXR0 YWNobWVudHMuCj4gPiA+IEkgYXNzdW1lZCB0aGF0IHRoZXJlIHdpbGwgYmUgYSBzaW5nbGUgdHJh bXBvbGluZSB3aXRoIG1heChhcmdubykKPiA+ID4gYWNyb3NzIGF0dGFjaG1lbnRzIGFuZCBhdHRh Y2gvZGV0YWNoIHdpbGwgc2NhbGUgdG8gdGhvdXNhbmRzLgo+ID4gPgo+ID4gPiBXaXRoIGluZGl2 aWR1YWwgdHJhbXBvbGluZSB0aGlzIHdpbGwgd29yayBmb3IgdXAgdG8gYSBodW5kcmVkCj4gPiA+ IGF0dGFjaG1lbnRzIG1heC4KPiA+Cj4gPiBXaGF0IGRvZXMgImEgaHVuZHJlZCBhdHRhY2htZW50 cyBtYXgiIG1lYW5zPyBDYW4ndCBJCj4gPiB0cmFjZSB0aG91c2FuZHMgb2Yga2VybmVsIGZ1bmN0 aW9ucyB3aXRoIGEgYnBmIHByb2dyYW0gb2YKPiA+IHRyYWNpbmcgbXVsdGktbGluaz8KPiAKPiBJ IG1lYW4gd2hhdCB0aW1lIGRvZXMgaXQgdGFrZSB0byBhdHRhY2ggb25lIHByb2dyYW0KPiB0byAx MDAgZmVudHJ5LXMgPwo+IFdoYXQgaXMgdGhlIHRpbWUgZm9yIDFrIGFuZCBmb3IgMTBrID8KPiAK PiBUaGUga3Byb2JlIG11bHRpIHRlc3QgYXR0YWNoZXMgdG8gcHJldHR5IG11Y2ggYWxsIGZ1bmNz IGluCj4gL3N5cy9rZXJuZWwvdHJhY2luZy9hdmFpbGFibGVfZmlsdGVyX2Z1bmN0aW9ucwo+IGFu ZCBpdCdzIGZhc3QgZW5vdWdoIHRvIHJ1biBpbiB0ZXN0X3Byb2dzIG9uIGV2ZXJ5IGNvbW1pdCBp biBicGYgQ0kuCj4gU2VlIGdldF9zeW1zKCkgaW4gcHJvZ190ZXN0cy9rcHJvYmVfbXVsdGlfdGVz dC5jCj4gCj4gQ2FuIHRoaXMgbmV3IG11bHRpIGZlbnRyeSBkbyB0aGF0Pwo+IGFuZCBhdCB3aGF0 IHNwZWVkPwo+IFRoZSBhbnN3ZXIgd2lsbCBkZWNpZGUgaG93IGFwcGxpY2FibGUgdGhpcyBhcGkg aXMgZ29pbmcgdG8gYmUuCj4gR2VuZXJhdGluZyBkaWZmZXJlbnQgdHJhbXBvbGluZXMgZm9yIGV2 ZXJ5IGF0dGFjaCBwb2ludAo+IGlzIGFuIGFwcHJvYWNoIGFzIHdlbGwuIFBscyBiZW5jaG1hcmsg aXQgdG9vLgo+IAo+ID4gPgo+ID4gPiBMZXQncyBzdGVwIGJhY2suCj4gPiA+IFdoYXQgaXMgdGhl IGV4YWN0IHVzZSBjYXNlIHlvdSdyZSB0cnlpbmcgdG8gc29sdmU/Cj4gPiA+IE5vdCBhbiBhcnRp ZmljaWFsIG9uZSBhcyBzZWxmdGVzdCBpbiBwYXRjaCA5LCBidXQgdGhlIHJlYWwgdXNlIGNhc2U/ Cj4gPgo+ID4gSSBoYXZlIGEgdG9vbCwgd2hpY2ggaXMgdXNlZCB0byBkaWFnbm9zZSBuZXR3b3Jr IHByb2JsZW1zLAo+ID4gYW5kIGl0cyBuYW1lIGlzICJuZXR0cmFjZSIuIEl0IHdpbGwgdHJhY2Ug bWFueSBrZXJuZWwgZnVuY3Rpb25zLCB3aG9zZQo+ID4gZnVuY3Rpb24gYXJncyBjb250YWluICJz a2IiLCBsaWtlIHRoaXM6Cj4gPgo+ID4gLi9uZXR0cmFjZSAtcCBpY21wCj4gPiBiZWdpbiB0cmFj ZS4uLgo+ID4gKioqKioqKioqKioqKioqKiogZmZmZjg4OWJlOGZiZDUwMCxmZmZmODg5YmU4ZmJj ZDAwICoqKioqKioqKioqKioqKgo+ID4gWzEyNzIzNDkuNjE0NTY0XSBbZGV2X2dyb19yZWNlaXZl ICAgICBdIElDTVA6IDE2OS4yNTQuMTI4LjE1IC0+Cj4gPiAxNzIuMjcuMC42IHBpbmcgcmVxdWVz dCwgc2VxOiA0ODIyMAo+ID4gWzEyNzIzNDkuNjE0NTc5XSBbX19uZXRpZl9yZWNlaXZlX3NrYl9j b3JlXSBJQ01QOiAxNjkuMjU0LjEyOC4xNSAtPgo+ID4gMTcyLjI3LjAuNiBwaW5nIHJlcXVlc3Qs IHNlcTogNDgyMjAKPiA+IFsxMjcyMzQ5LjYxNDU4NV0gW2lwX3JjdiAgICAgICAgICAgICAgXSBJ Q01QOiAxNjkuMjU0LjEyOC4xNSAtPgo+ID4gMTcyLjI3LjAuNiBwaW5nIHJlcXVlc3QsIHNlcTog NDgyMjAKPiA+IFsxMjcyMzQ5LjYxNDU5Ml0gW2lwX3Jjdl9jb3JlICAgICAgICAgXSBJQ01QOiAx NjkuMjU0LjEyOC4xNSAtPgo+ID4gMTcyLjI3LjAuNiBwaW5nIHJlcXVlc3QsIHNlcTogNDgyMjAK PiA+IFsxMjcyMzQ5LjYxNDU5OV0gW3NrYl9jbG9uZSAgICAgICAgICAgXSBJQ01QOiAxNjkuMjU0 LjEyOC4xNSAtPgo+ID4gMTcyLjI3LjAuNiBwaW5nIHJlcXVlc3QsIHNlcTogNDgyMjAKPiA+IFsx MjcyMzQ5LjYxNDYxNl0gW25mX2hvb2tfc2xvdyAgICAgICAgXSBJQ01QOiAxNjkuMjU0LjEyOC4x NSAtPgo+ID4gMTcyLjI3LjAuNiBwaW5nIHJlcXVlc3QsIHNlcTogNDgyMjAKPiA+IFsxMjcyMzQ5 LjYxNDYyOV0gW25mdF9kb19jaGFpbiAgICAgICAgXSBJQ01QOiAxNjkuMjU0LjEyOC4xNSAtPgo+ ID4gMTcyLjI3LjAuNiBwaW5nIHJlcXVlc3QsIHNlcTogNDgyMjAKPiA+IFsxMjcyMzQ5LjYxNDYz NV0gW2lwX3Jjdl9maW5pc2ggICAgICAgXSBJQ01QOiAxNjkuMjU0LjEyOC4xNSAtPgo+ID4gMTcy LjI3LjAuNiBwaW5nIHJlcXVlc3QsIHNlcTogNDgyMjAKPiA+IFsxMjcyMzQ5LjYxNDY0M10gW2lw X3JvdXRlX2lucHV0X3Nsb3cgXSBJQ01QOiAxNjkuMjU0LjEyOC4xNSAtPgo+ID4gMTcyLjI3LjAu NiBwaW5nIHJlcXVlc3QsIHNlcTogNDgyMjAKPiA+IFsxMjcyMzQ5LjYxNDY0N10gW2ZpYl92YWxp ZGF0ZV9zb3VyY2UgXSBJQ01QOiAxNjkuMjU0LjEyOC4xNSAtPgo+ID4gMTcyLjI3LjAuNiBwaW5n IHJlcXVlc3QsIHNlcTogNDgyMjAKPiA+IFsxMjcyMzQ5LjYxNDY1Ml0gW2lwX2xvY2FsX2RlbGl2 ZXIgICAgXSBJQ01QOiAxNjkuMjU0LjEyOC4xNSAtPgo+ID4gMTcyLjI3LjAuNiBwaW5nIHJlcXVl c3QsIHNlcTogNDgyMjAKPiA+IFsxMjcyMzQ5LjYxNDY1OF0gW25mX2hvb2tfc2xvdyAgICAgICAg XSBJQ01QOiAxNjkuMjU0LjEyOC4xNSAtPgo+ID4gMTcyLjI3LjAuNiBwaW5nIHJlcXVlc3QsIHNl cTogNDgyMjAKPiA+IFsxMjcyMzQ5LjYxNDY2M10gW2lwX2xvY2FsX2RlbGl2ZXJfZmluaXNoXSBJ Q01QOiAxNjkuMjU0LjEyOC4xNSAtPgo+ID4gMTcyLjI3LjAuNiBwaW5nIHJlcXVlc3QsIHNlcTog NDgyMjAKPiA+IFsxMjcyMzQ5LjYxNDY2Nl0gW2ljbXBfcmN2ICAgICAgICAgICAgXSBJQ01QOiAx NjkuMjU0LjEyOC4xNSAtPgo+ID4gMTcyLjI3LjAuNiBwaW5nIHJlcXVlc3QsIHNlcTogNDgyMjAK PiA+IFsxMjcyMzQ5LjYxNDY3MV0gW2ljbXBfZWNobyAgICAgICAgICAgXSBJQ01QOiAxNjkuMjU0 LjEyOC4xNSAtPgo+ID4gMTcyLjI3LjAuNiBwaW5nIHJlcXVlc3QsIHNlcTogNDgyMjAKPiA+IFsx MjcyMzQ5LjYxNDY3NV0gW2ljbXBfcmVwbHkgICAgICAgICAgXSBJQ01QOiAxNjkuMjU0LjEyOC4x NSAtPgo+ID4gMTcyLjI3LjAuNiBwaW5nIHJlcXVlc3QsIHNlcTogNDgyMjAKPiA+IFsxMjcyMzQ5 LjYxNDcxNV0gW2NvbnN1bWVfc2tiICAgICAgICAgXSBJQ01QOiAxNjkuMjU0LjEyOC4xNSAtPgo+ ID4gMTcyLjI3LjAuNiBwaW5nIHJlcXVlc3QsIHNlcTogNDgyMjAKPiA+IFsxMjcyMzQ5LjYxNDcy Ml0gW3BhY2tldF9yY3YgICAgICAgICAgXSBJQ01QOiAxNjkuMjU0LjEyOC4xNSAtPgo+ID4gMTcy LjI3LjAuNiBwaW5nIHJlcXVlc3QsIHNlcTogNDgyMjAKPiA+IFsxMjcyMzQ5LjYxNDcyNV0gW2Nv bnN1bWVfc2tiICAgICAgICAgXSBJQ01QOiAxNjkuMjU0LjEyOC4xNSAtPgo+ID4gMTcyLjI3LjAu NiBwaW5nIHJlcXVlc3QsIHNlcTogNDgyMjAKPiA+Cj4gPiBGb3Igbm93LCBJIGhhdmUgdG8gY3Jl YXRlIGEgYnBmIHByb2dyYW0gZm9yIGV2ZXJ5IGtlcm5lbAo+ID4gZnVuY3Rpb24gdGhhdCBJIHdh bnQgdG8gdHJhY2UsIHdoaWNoIGlzIHVwIHRvIDIwMC4KPiA+Cj4gPiBXaXRoIHRoaXMgbXVsdGkt bGluaywgSSBvbmx5IG5lZWQgdG8gY3JlYXRlIDUgYnBmIHByb2dyYW0sCj4gPiBsaWtlIHRoaXM6 Cj4gPgo+ID4gaW50IEJQRl9QUk9HKHRyYWNlX3NrYl8xLCBzdHJ1Y3QgKnNrYik7Cj4gPiBpbnQg QlBGX1BST0codHJhY2Vfc2tiXzIsIHU2NCBhcmcwLCBzdHJ1Y3QgKnNrYik7Cj4gPiBpbnQgQlBG X1BST0codHJhY2Vfc2tiXzMsIHU2NCBhcmcwLCB1NjQgYXJnMSwgc3RydWN0ICpza2IpOwo+ID4g aW50IEJQRl9QUk9HKHRyYWNlX3NrYl80LCB1NjQgYXJnMCwgdTY0IGFyZzEsIHU2NCBhcmcyLCBz dHJ1Y3QgKnNrYik7Cj4gPiBpbnQgQlBGX1BST0codHJhY2Vfc2tiXzUsIHU2NCBhcmcwLCB1NjQg YXJnMSwgdTY0IGFyZzIsIHU2NCBhcmczLCBzdHJ1Y3QgKnNrYik7Cj4gPgo+ID4gVGhlbiwgSSBj YW4gYXR0YWNoIHRyYWNlX3NrYl8xIHRvIGFsbCB0aGUga2VybmVsIGZ1bmN0aW9ucyB0aGF0Cj4g PiBJIHdhbnQgdG8gdHJhY2UgYW5kIHdob3NlIGZpcnN0IGFyZyBpcyBza2I7IGF0dGFjaCB0cmFj ZV9za2JfMiB0byBrZXJuZWwKPiA+IGZ1bmN0aW9ucyB3aG9zZSAybmQgYXJnIGlzIHNrYiwgZXRj Lgo+ID4KPiA+IE9yLCBJIGNhbiBjcmVhdGUgb25seSBvbmUgYnBmIHByb2dyYW0gYW5kIHN0b3Jl IHRoZSBpbmRleAo+ID4gb2Ygc2tiIHRvIHRoZSBhdHRhY2htZW50IGNvb2tpZSwgYW5kIGF0dGFj aCB0aGlzIHByb2dyYW0gdG8gYWxsCj4gPiB0aGUga2VybmVsIGZ1bmN0aW9ucyB0aGF0IEkgd2Fu dCB0byB0cmFjZS4KPiA+Cj4gPiBUaGlzIGlzIG15IHVzZSBjYXNlLiBXaXRoIHRoZSBtdWx0aS1s aW5rLCBub3cgSSBvbmx5IGhhdmUKPiA+IDEgYnBmIHByb2dyYW0sIDEgYnBmIGxpbmssIDIwMCB0 cmFtcG9saW5lcywgaW5zdGVhZCBvZiAyMDAKPiA+IGJwZiBwcm9ncmFtcywgMjAwIGJwZiBsaW5r IGFuZCAyMDAgdHJhbXBvbGluZXMuCj4gCj4gSSBzZWUuIFRoZSB1c2UgY2FzZSBtYWtlcyBzZW5z ZSB0byBtZS4KPiBBbmRyaWkncyByZXRzbm9vcCBpcyB1c2VkIHRvIGRvIHNpbWlsYXIgdGhpbmcg YmVmb3JlIGtwcm9iZSBtdWx0aSB3YXMKPiBpbnRyb2R1Y2VkLgo+IAo+ID4gVGhlIHNoYXJlZCB0 cmFtcG9saW5lIHlvdSBtZW50aW9uZWQgc2VlbXMgdG8gYmUgYQo+ID4gd29uZGVyZnVsIGlkZWEs IHdoaWNoIGNhbiBtYWtlIHRoZSAyMDAgdHJhbXBvbGluZXMKPiA+IHRvIG9uZS4gTGV0IG1lIGhh dmUgYSBsb29rLCB3ZSBjcmVhdGUgYSB0cmFtcG9saW5lIGFuZAo+ID4gcmVjb3JkIHRoZSBtYXgg YXJncyBjb3VudCBvZiBhbGwgdGhlIHRhcmdldCBmdW5jdGlvbnMsIGxldCdzCj4gPiBtYXJrIGl0 IGFzIGFyZ19jb3VudC4KPiA+Cj4gPiBEdXJpbmcgZ2VuZXJhdGluZyB0aGUgdHJhbXBvbGluZSwg d2UgYXNzdW1lIHRoYXQgdGhlCj4gPiBmdW5jdGlvbiBhcmdzIGNvdW50IGlzIGFyZ19jb3VudC4g RHVyaW5nIGF0dGFjaGluZywgd2UKPiA+IGNoZWNrIHRoZSBjb25zaXN0ZW5jeSBvZiBhbGwgdGhl IHRhcmdldCBmdW5jdGlvbnMsIGp1c3QgbGlrZQo+ID4gd2hhdCB3ZSBkbyBub3cuCj4gCj4gRm9y IG9uZSB0cmFtcG9saW5lIHRvIGhhbmRsZSBhbGwgYXR0YWNoIHBvaW50cyB3ZSBtaWdodAo+IG5l ZWQgc29tZSBhcmNoIHN1cHBvcnQsIGJ1dCB3ZSBjYW4gc3RhcnQgc2ltcGxlLgo+IE1ha2UgYnRm X2Z1bmNfbW9kZWwgd2l0aCBNQVhfQlBGX0ZVTkNfUkVHX0FSR1MKPiBieSBjYWxsaW5nIGJ0Zl9k aXN0aWxsX2Z1bmNfcHJvdG8oKSB3aXRoIGZ1bmM9PU5VTEwuCj4gQW5kIHVzZSB0aGF0IHRvIGJ1 aWxkIGEgdHJhbXBvbGluZS4KPiAKPiBUaGUgY2hhbGxlbmdlIGlzIGhvdyB0byB1c2UgbWluaW1h bCBudW1iZXIgb2YgdHJhbXBvbGluZXMKPiB3aGVuIGJwZl9wcm9nQSBpcyBhdHRhY2hlZCBmb3Ig ZnVuYzEsIGZ1bmMyLCBmdW5jMwo+IGFuZCBicGZfcHJvZ0IgaXMgYXR0YWNoZWQgdG8gZnVuYzMs IGZ1bmM0LCBmdW5jNS4KPiBXZSdkIHN0aWxsIG5lZWQgMyB0cmFtcG9saW5lczoKPiBmb3IgZnVu Y1sxMl0gdG8gY2FsbCBicGZfcHJvZ0EsCj4gZm9yIGZ1bmMzIHRvIGNhbGwgYnBmX3Byb2dBIGFu ZCBicGZfcHJvZ0IsCj4gZm9yIGZ1bmNbNDVdIHRvIGNhbGwgYnBmX3Byb2dCLgo+IAo+IEppcmkg d2FzIHRyeWluZyB0byBzb2x2ZSBpdCBpbiB0aGUgcGFzdC4gSGlzIHNsaWRlcyBmcm9tIExQQzoK PiBodHRwczovL2xwYy5ldmVudHMvZXZlbnQvMTYvY29udHJpYnV0aW9ucy8xMzUwL2F0dGFjaG1l bnRzLzEwMzMvMTk4My9wbHVtYmVycy5wZGYKPiAKPiBQbHMgc3R1ZHkgdGhlbSBhbmQgaGlzIHBy aW9yIHBhdGNoc2V0cyB0byBhdm9pZCBzdGVwcGluZyBvbiB0aGUgc2FtZSByYWtlcy4KCnllcCwg SSByZWZyYWluZWQgZnJvbSBjb21tZW50aW5nIG5vdCB0byB0YWtlIHlvdSBkb3duIHRoZSBzYW1l IHBhdGgKSSBkaWQsIGJ1dCBpZiB5b3UgaW5zaXN0Li4gOy0pIAoKSSBtYW5hZ2VkIHRvIGZvcmdv dCBhbG1vc3QgYWxsIG9mIGl0LCBidXQgdGhlIElJUkMgdGhlIG1haW4gcGFpbiBwb2ludAp3YXMg dGhhdCBhdCBzb21lIHBvaW50IEkgaGFkIHRvIHNwbGl0IGV4aXN0aW5nIHRyYW1wb2xpbmUgd2hp Y2ggY2F1c2VkCnRoZSB3aG9sZSB0cmFtcG9saW5lcyBtYW5hZ2VtZW50IGFuZCBlcnJvciBwYXRo cyB0byBiZWNvbWUgYSBtZXNzCgpJIHRyaWVkIHRvIGV4cGxhaW4gdGhpbmdzIGluIFsxXSBjaGFu Z2Vsb2cgYW5kIHRoZSBsYXRlc3QgcGF0Y2hzZXQgaXMgaW4gWzBdCgpmZWVsIGZyZWUgdG8gdXNl L3Rha2UgYW55dGhpbmcsIGJ1dCBJIGFkdmljZSBzdHJvbmdseSBhZ2FpbnN0IGl0IDstKQpwbGVh c2UgbGV0IG1lIGtub3cgaWYgSSBjYW4gaGVscAoKamlya2EKCgpbMF0gaHR0cHM6Ly9naXQua2Vy bmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvam9sc2EvcGVyZi5naXQvbG9nLz9oPWJw Zi9iYXRjaApbMV0gaHR0cHM6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9n aXQvam9sc2EvcGVyZi5naXQvY29tbWl0Lz9oPWJwZi9iYXRjaCZpZD01MmExZDRhY2RmNTVkZjQx ZTk5Y2EyY2VhNTE4NjVlNjgyMTAzNmNlCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0t a2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFp bG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==