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=-23.3 required=3.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS, USER_IN_DEF_DKIM_WL autolearn=ham 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 B5B96C433E0 for ; Tue, 9 Mar 2021 17:13:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 7ACF465237 for ; Tue, 9 Mar 2021 17:13:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231508AbhCIRMb (ORCPT ); Tue, 9 Mar 2021 12:12:31 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37722 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231248AbhCIRL7 (ORCPT ); Tue, 9 Mar 2021 12:11:59 -0500 Received: from mail-qt1-x832.google.com (mail-qt1-x832.google.com [IPv6:2607:f8b0:4864:20::832]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2A73DC06174A for ; Tue, 9 Mar 2021 09:11:59 -0800 (PST) Received: by mail-qt1-x832.google.com with SMTP id o1so10729710qta.13 for ; Tue, 09 Mar 2021 09:11:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=KwGtnz1AD/0q7YuUdh1xulZHOiAj/WnKCHjCQomSHvc=; b=tLEBsAmNnjgzVhY0oxay44sVNnLiLyTAPDPmVhAX3I4HJkk5IJqSHFSoHIxsYr1al6 tJqMIDSIs/CagZ0l4Pm9iArBET4dxejsjH7G3eiKhacUBtq+V+9I8n2c71I5wMSsowqG aAVyTJ8WWSIU7BWn5npyeCbz3vdgD8UNUJ77Eb9dpRIGF/wn85UhHtlJsj/T4EqhBnMj jWOFhGTtE4PlXYz3PPGt8yxol4C1/b59DmooGooSO9hFoCTTsSLDWG5jFdfNbXjABHkS e7jzzn7LLhH7mTmocqZnvbXNG/fUPEz+C24JnEpacBbGBHWcIdYQjlvd1KP+bplxuklj 6O7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=KwGtnz1AD/0q7YuUdh1xulZHOiAj/WnKCHjCQomSHvc=; b=WM+Gfo2DrOv9gBW40nDQwsPbhYL/0ly51XALl/4tZJjOxGxkZleGna2gZEtt/nk9PA fKypGCBfA5vKj5NsjErlVXAfDXpMv8efuvU9Br8AL1isbFxSZNiq8tbyMu/PqyEaQX57 NQejtTb0Ts9gH38Ftjr2PjxHyvWs0I75WuAY4e4N+jmc8JaUHsZbTWszZ6Atb/fBsG4B Ja1xW3FmXYnX2VjOtClRkUyze4lAbOMqxCr09OxI4qMJJRSGb3WKr8YvebSJdGpYq8ba lnSMdFrZ+2l5fEbvraRqsG8XNUAzu8WJ4t43E11RyOEJZRQ72R1Qo+tTydo+Q7UUcHav jCPQ== X-Gm-Message-State: AOAM5320Yorkiioe58EdIVAGPoAneSpRS3r02lqZr78h7B2QCk2jADAF 4G0BR3eKKxPoj4kDyCY03zYEmbV63A6BIIkmXRvoQSqYwNQWrQ== X-Google-Smtp-Source: ABdhPJz9DrS2jcaLWcp6f1ZOZEs5IQzb5sKGPo5b8Wk9TUHxJNGz70X9hQL8jHUcVDeQpHrHs3hEwQco0AE2fbACG/A= X-Received: by 2002:ac8:5908:: with SMTP id 8mr25939727qty.66.1615309917967; Tue, 09 Mar 2021 09:11:57 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Dmitry Vyukov Date: Tue, 9 Mar 2021 18:11:46 +0100 Message-ID: Subject: Re: riscv+KASAN does not boot To: Palmer Dabbelt Cc: Alex Ghiti , Albert Ou , Bjorn Topel , LKML , nylon7@andestech.com, syzkaller , Andreas Schwab , Paul Walmsley , Tobias Klauser , linux-riscv Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Feb 19, 2021 at 11:26 PM 'Palmer Dabbelt' via syzkaller wrote: > > On Fri, 19 Feb 2021 10:53:43 PST (-0800), dvyukov@google.com wrote: > > On Fri, Feb 19, 2021 at 6:01 PM Alex Ghiti wrote: > >> > >> Hi Dmitry, > >> > >> Le 2/18/21 =C3=A0 6:36 AM, Dmitry Vyukov a =C3=A9crit : > >> > On Thu, Feb 18, 2021 at 8:54 AM Alex Ghiti wrote: > >> >> > >> >> Hi Dmitry, > >> >> > >> >>> On Wed, Feb 17, 2021 at 5:36 PM Alex Ghiti wrote: > >> >>>> > >> >>>> Le 2/16/21 =C3=A0 11:42 PM, Dmitry Vyukov a =C3=A9crit : > >> >>>>> On Tue, Feb 16, 2021 at 9:42 PM Alex Ghiti wrote= : > >> >>>>>> > >> >>>>>> Hi Dmitry, > >> >>>>>> > >> >>>>>> Le 2/16/21 =C3=A0 6:25 AM, Dmitry Vyukov a =C3=A9crit : > >> >>>>>>> On Tue, Feb 16, 2021 at 12:17 PM Dmitry Vyukov wrote: > >> >>>>>>>> > >> >>>>>>>> On Fri, Jan 29, 2021 at 9:11 AM Dmitry Vyukov wrote: > >> >>>>>>>>>> I was fixing KASAN support for my sv48 patchset so I took a= look at your > >> >>>>>>>>>> issue: I built a kernel on top of the branch riscv/fixes us= ing > >> >>>>>>>>>> https://github.com/google/syzkaller/blob/269d24e857a757d09a= 898086a2fa6fa5d827c3e1/dashboard/config/linux/upstream-riscv64-kasan.config > >> >>>>>>>>>> and Buildroot 2020.11. I have the warnings regarding the us= e of > >> >>>>>>>>>> __virt_to_phys on wrong addresses (but that's normal since = this function > >> >>>>>>>>>> is used in virt_addr_valid) but not the segfaults you descr= ibe. > >> >>>>>>>>> > >> >>>>>>>>> Hi Alex, > >> >>>>>>>>> > >> >>>>>>>>> Let me try to rebuild buildroot image. Maybe there was somet= hing wrong > >> >>>>>>>>> with my build, though, I did 'make clean' before doing. But = at the > >> >>>>>>>>> same time it worked back in June... > >> >>>>>>>>> > >> >>>>>>>>> Re WARNINGs, they indicate kernel bugs. I am working on sett= ing up a > >> >>>>>>>>> syzbot instance on riscv. If there a WARNING during boot the= n the > >> >>>>>>>>> kernel will be marked as broken. No further testing will hap= pen. > >> >>>>>>>>> Is it a mis-use of WARN_ON? If so, could anybody please remo= ve it or > >> >>>>>>>>> replace it with pr_err. > >> >>>>>>>> > >> >>>>>>>> > >> >>>>>>>> Hi, > >> >>>>>>>> > >> >>>>>>>> I've localized one issue with riscv/KASAN: > >> >>>>>>>> KASAN breaks VDSO and that's I think the root cause of weird = faults I > >> >>>>>>>> saw earlier. The following patch fixes it. > >> >>>>>>>> Could somebody please upstream this fix? I don't know how to = add/run > >> >>>>>>>> tests for this. > >> >>>>>>>> Thanks > >> >>>>>>>> > >> >>>>>>>> diff --git a/arch/riscv/kernel/vdso/Makefile b/arch/riscv/ker= nel/vdso/Makefile > >> >>>>>>>> index 0cfd6da784f84..cf3a383c1799d 100644 > >> >>>>>>>> --- a/arch/riscv/kernel/vdso/Makefile > >> >>>>>>>> +++ b/arch/riscv/kernel/vdso/Makefile > >> >>>>>>>> @@ -35,6 +35,7 @@ CFLAGS_REMOVE_vgettimeofday.o =3D $(CC_FLAG= S_FTRACE) -Os > >> >>>>>>>> # Disable gcov profiling for VDSO code > >> >>>>>>>> GCOV_PROFILE :=3D n > >> >>>>>>>> KCOV_INSTRUMENT :=3D n > >> >>>>>>>> +KASAN_SANITIZE :=3D n > >> >>>>>>>> > >> >>>>>>>> # Force dependency > >> >>>>>>>> $(obj)/vdso.o: $(obj)/vdso.so > >> >>>>>> > >> >>>>>> What's weird is that I don't have any issue without this patch = with the > >> >>>>>> following config whereas it indeed seems required for KASAN. Bu= t when > >> >>>>>> looking at the segfaults you got earlier, the segfault address = is 0xbb0 > >> >>>>>> and the cause is an instruction page fault: this address is the= PLT base > >> >>>>>> address in vdso.so and an instruction page fault would mean tha= t someone > >> >>>>>> tried to jump at this address, which is weird. At first sight, = that does > >> >>>>>> not seem related to your patch above, but clearly I may be wron= g. > >> >>>>>> > >> >>>>>> Tobias, did you observe the same segfaults as Dmitry ? > >> >>>>> > >> >>>>> > >> >>>>> I noticed that not all buildroot images use VDSO, it seems to be > >> >>>>> dependent on libc settings (at least I think I changed it in the > >> >>>>> past). > >> >>>> > >> >>>> Ok, I used uClibc but then when using glibc, I have the same segf= aults, > >> >>>> only when KASAN is enabled. And your patch fixes the problem. I w= ill try > >> >>>> to take a look later to better understand the problem. > >> >>>> > >> >>>>> I also booted an image completely successfully including dhcpd/s= shd > >> >>>>> start, but then my executable crashed in clock_gettime. The exec= utable > >> >>>>> was build on linux/amd64 host with "riscv64-linux-gnu-gcc -stati= c" > >> >>>>> (10.2.1). > >> >>>>> > >> >>>>> > >> >>>>>>> Second issue I am seeing seems to be related to text segment s= ize. > >> >>>>>>> I check out v5.11 and use this config: > >> >>>>>>> https://gist.github.com/dvyukov/6af25474d455437577a84213b0cc91= 78 > >> >>>>>> > >> >>>>>> This config gave my laptop a hard time ! Finally I was able to = boot > >> >>>>>> correctly to userspace, but I realized I used my sv48 branch...= Either I > >> >>>>>> fixed your issue along the way or I can't reproduce it, I'll gi= ve it a > >> >>>>>> try tomorrow. > >> >>>>> > >> >>>>> Where is your branch? I could also test in my setup on your bran= ch. > >> >>>>> > >> >>>> > >> >>>> You can find my branch int/alex/riscv_kernel_end_of_address_space= _v2 > >> >>>> here: https://github.com/AlexGhiti/riscv-linux.git > >> >>> > >> >>> No, it does not work for me. > >> >>> > >> >>> Source is on b61ab6c98de021398cd7734ea5fc3655e51e70f2 (HEAD, > >> >>> int/alex/riscv_kernel_end_of_address_space_v2) > >> >>> Config is https://gist.githubusercontent.com/dvyukov/6af25474d4554= 37577a84213b0cc9178/raw/55b116522c14a8a98a7626d76df740d54f648ce5/gistfile1.= txt > >> >>> > >> >>> riscv64-linux-gnu-gcc -v > >> >>> gcc version 10.2.1 20210110 (Debian 10.2.1-6+build1) > >> >>> > >> >>> qemu-system-riscv64 --version > >> >>> QEMU emulator version 5.2.0 (Debian 1:5.2+dfsg-3) > >> >>> > >> >>> qemu-system-riscv64 \ > >> >>> -machine virt -smp 2 -m 2G \ > >> >>> -device virtio-blk-device,drive=3Dhd0 \ > >> >>> -drive file=3Dimage-riscv64,if=3Dnone,format=3Draw,id=3Dhd0 \ > >> >>> -kernel arch/riscv/boot/Image \ > >> >>> -nographic \ > >> >>> -device virtio-rng-device,rng=3Drng0 -object > >> >>> rng-random,filename=3D/dev/urandom,id=3Drng0 \ > >> >>> -netdev user,id=3Dnet0,host=3D10.0.2.10,hostfwd=3Dtcp::10022-:22 -= device > >> >>> virtio-net-device,netdev=3Dnet0 \ > >> >>> -append "root=3D/dev/vda earlyprintk=3Dserial console=3DttyS0 oops= =3Dpanic > >> >>> panic_on_warn=3D1 panic=3D86400 earlycon" > >> >> > >> >> It still works for me but I had to disable CONFIG_DEBUG_INFO_BTF (I > >> >> don't think that changes anything at runtime). But your above comma= nd > >> >> line does not work for me as it appears you do not load any firmwar= e, if > >> >> I add -bios images/fw_jump.elf, it works. But then I don't know whe= re > >> >> your opensbi output below comes from... > >> >> > >> >> And regarding your issue with calling clock_gettime 'directly' comp= ared > >> >> to using the syscall, I have the same consistent output from both c= alls. > >> >> > >> >> I have an older gcc (9.3.0) and the same qemu. I think what is miss= ing > >> >> here is your buildroot config, so that we have the exact same > >> >> environment: could you post your buildroot config as well ? > >> > > >> > I don't think the image is relevant because I don't even get to kern= el > >> > code. If the kernel will complain about no init later, that's fine. > >> > Re bios, this version of qemu already has OpenSBI bios builtin, you > >> > can pass -bios default, but that's, well, the default :) > >> > Here are more reproducible repro instructions that capture gcc and > >> > qemu. I think gcc version may be potentially relevant as I suspect > >> > code size. > >> > > >> > > >> > curl https://gist.githubusercontent.com/dvyukov/6af25474d455437577a8= 4213b0cc9178/raw/55b116522c14a8a98a7626d76df740d54f648ce5/gistfile1.txt > >> >> $KERNEL_SRC/.config > >> > docker pull gcr.io/syzkaller/syzbot > >> > docker run -it -v $KERNEL_SRC:/kernel gcr.io/syzkaller/syzbot > >> > cd /kernel > >> > make -j72 ARCH=3Driscv CROSS_COMPILE=3Driscv64-linux-gnu- olddefconf= ig > >> > make -j72 ARCH=3Driscv CROSS_COMPILE=3Driscv64-linux-gnu- > >> > qemu-system-riscv64 -machine virt -smp 2 -m 4G -kernel > >> > arch/riscv/boot/Image -nographic -append "earlycon earlyprintk=3Dser= ial > >> > console=3DttyS0" > >> > [this does not, only OpenSBI output] > >> > > >> > >> Indeed the issue was code size, please find the fix below. I will send= a > >> proper patch once I made sure the fix is the right one, but I'm pretty > >> confident, there's no reason to limit the mapping size to 128MB wherea= s > >> we have a whole pgdir. > > > > Great you get to the bottom of this! > > Riscv kernels are going to be YUGE! > > IIRC I tried that a while ago and it didn't work. It's possible I was ju= st > running into some other bug, but I'm just build testing allyesconfig as o= pposed > to boot testing it. > > If you've got a setup that does boot I'm happy to take a patch, though. = It'll > at least be one step forward. OK, it's getting better. The next issue is called "512 bytes should be enough for everyone!" :) https://elixir.bootlin.com/linux/v5.12-rc2/source/include/uapi/asm-generic/= setup.h#L5 Most other arches redefine it to something bigger: https://elixir.bootlin.com/linux/v5.12-rc2/source/arch/s390/include/uapi/as= m/setup.h#L10 even arm32 redefines it. I am not sure the default is even reasonable anymore. Failure mode is also not nice (silent truncation). We are trying to pass this: earlyprintk=3Dserial oops=3Dpanic nmi_watchdog=3Dpanic panic=3D86400 net.ifnames=3D0 sysctl.kernel.hung_task_all_cpu_backtrace=3D1 ima_policy=3Dtcb kvm-intel.nested=3D1 nf-conntrack-ftp.ports=3D20000 nf-conntrack-tftp.ports=3D20000 nf-conntrack-sip.ports=3D20000 nf-conntrack-irc.ports=3D20000 nf-conntrack-sane.ports=3D20000 vivid.n_devs=3D16 vivid.multiplanar=3D1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2 netrom.nr_ndevs=3D16 rose.rose_ndevs=3D16 spec_store_bypass_disable=3Dprctl numa=3Dfake=3D2 nopcid dummy_hcd.num=3D8 binder.debug_mask=3D0 rcupdate.rcu_expedited=3D1 watchdog_thresh=3D165 workqueue.watchdog_thresh=3D420 panic_on_warn=3D1 The last part gets truncated and we are getting false workqueue watchdog st= alls. Could you please increase it? 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=-14.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS autolearn=ham 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 56EB5C433E0 for ; Tue, 9 Mar 2021 17:12:22 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 C990364FCF for ; Tue, 9 Mar 2021 17:12:21 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C990364FCF Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=google.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Cc:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=qpWLaEoLhdilI5DG1Omhy3fp/kKQyz/jhXpns7AcfBc=; b=NnTETD1xBDVeJ9w4pDSJ/9AvZ 5jugXuaD1lIf8ogPG5rXm4NnbgzX//wjzo8AmyxseBAK6EEXDPtTl5r60WoThXWt7hC/nQGrBWu5W T8Im2brqVCp8LkFccwK7DT3HCZmdbjQuUfzu0o4W/Q6t+qdsXK4lFnAAqmsXqEAXdszAGRuC2lD1M Aj+9Z7Xxb51Pa5iVXzpjcdxjiWyPqBI1ZVYOyRuuf3+v7FVOL5IbYC9Pja/nJgPO7qYfnVBd6rW9V xDp+Gh1RRpcxUU7qqxDI8dpP6Am29nnHY5WJcDyd82eFolcS6ReJsYyt5X//InD+N3TPtYymsZLmb +biyh042Q==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lJfts-0059v5-NJ; Tue, 09 Mar 2021 17:12:04 +0000 Received: from mail-qt1-x836.google.com ([2607:f8b0:4864:20::836]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lJftn-0059uJ-KY for linux-riscv@lists.infradead.org; Tue, 09 Mar 2021 17:12:01 +0000 Received: by mail-qt1-x836.google.com with SMTP id n26so1571741qtv.8 for ; Tue, 09 Mar 2021 09:11:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=KwGtnz1AD/0q7YuUdh1xulZHOiAj/WnKCHjCQomSHvc=; b=tLEBsAmNnjgzVhY0oxay44sVNnLiLyTAPDPmVhAX3I4HJkk5IJqSHFSoHIxsYr1al6 tJqMIDSIs/CagZ0l4Pm9iArBET4dxejsjH7G3eiKhacUBtq+V+9I8n2c71I5wMSsowqG aAVyTJ8WWSIU7BWn5npyeCbz3vdgD8UNUJ77Eb9dpRIGF/wn85UhHtlJsj/T4EqhBnMj jWOFhGTtE4PlXYz3PPGt8yxol4C1/b59DmooGooSO9hFoCTTsSLDWG5jFdfNbXjABHkS e7jzzn7LLhH7mTmocqZnvbXNG/fUPEz+C24JnEpacBbGBHWcIdYQjlvd1KP+bplxuklj 6O7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=KwGtnz1AD/0q7YuUdh1xulZHOiAj/WnKCHjCQomSHvc=; b=b8uDnvtLJq3O8MaJ2VmQqmNtdMHxkpJ3VvgG/cnvAAfx0W2D84KONyz9f9rQFkCwvw whp4M4Yj61Psm0O0NZslYjtwz+GmfDZGCbkbRE8lQiyTQuGDKHqDrDkpVjT79wc8dApz 8JNDC5lR/DPdy6gHi8bTLIk7i06PZEbLT8pdbuEIj7JIU2VaGnxYtFrY6jZ+NoWuv1Th wH2TLYNnFZ8QkP2MIsigLs8P1DTeTUC/MzUTL+0HJiDsnVRjI3wFFxwmi+DBQgIzRaiF GDvEqaDw0BkbJuFaMYU8zq74eDd0QnHBWCGTEav9A60zzC6gjCTFKM4+KxJdDYpObM61 kvEQ== X-Gm-Message-State: AOAM530VlvIj9QGRxy2s+VqhTiXGAoF6FJ7PKDzjnVNsaHbfYVn/vpM9 KMai7qUco9y671uCxcJqAabOUG0RN/I96ThOb3B1RA== X-Google-Smtp-Source: ABdhPJz9DrS2jcaLWcp6f1ZOZEs5IQzb5sKGPo5b8Wk9TUHxJNGz70X9hQL8jHUcVDeQpHrHs3hEwQco0AE2fbACG/A= X-Received: by 2002:ac8:5908:: with SMTP id 8mr25939727qty.66.1615309917967; Tue, 09 Mar 2021 09:11:57 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Dmitry Vyukov Date: Tue, 9 Mar 2021 18:11:46 +0100 Message-ID: Subject: Re: riscv+KASAN does not boot To: Palmer Dabbelt Cc: Alex Ghiti , Albert Ou , Bjorn Topel , LKML , nylon7@andestech.com, syzkaller , Andreas Schwab , Paul Walmsley , Tobias Klauser , linux-riscv X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210309_171159_749001_E4361699 X-CRM114-Status: GOOD ( 55.25 ) 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 T24gRnJpLCBGZWIgMTksIDIwMjEgYXQgMTE6MjYgUE0gJ1BhbG1lciBEYWJiZWx0JyB2aWEgc3l6 a2FsbGVyCjxzeXprYWxsZXJAZ29vZ2xlZ3JvdXBzLmNvbT4gd3JvdGU6Cj4KPiBPbiBGcmksIDE5 IEZlYiAyMDIxIDEwOjUzOjQzIFBTVCAoLTA4MDApLCBkdnl1a292QGdvb2dsZS5jb20gd3JvdGU6 Cj4gPiBPbiBGcmksIEZlYiAxOSwgMjAyMSBhdCA2OjAxIFBNIEFsZXggR2hpdGkgPGFsZXhAZ2hp dGkuZnI+IHdyb3RlOgo+ID4+Cj4gPj4gSGkgRG1pdHJ5LAo+ID4+Cj4gPj4gTGUgMi8xOC8yMSDD oCA2OjM2IEFNLCBEbWl0cnkgVnl1a292IGEgw6ljcml0IDoKPiA+PiA+IE9uIFRodSwgRmViIDE4 LCAyMDIxIGF0IDg6NTQgQU0gQWxleCBHaGl0aSA8YWxleEBnaGl0aS5mcj4gd3JvdGU6Cj4gPj4g Pj4KPiA+PiA+PiBIaSBEbWl0cnksCj4gPj4gPj4KPiA+PiA+Pj4gT24gV2VkLCBGZWIgMTcsIDIw MjEgYXQgNTozNiBQTSBBbGV4IEdoaXRpIDxhbGV4QGdoaXRpLmZyPiB3cm90ZToKPiA+PiA+Pj4+ Cj4gPj4gPj4+PiBMZSAyLzE2LzIxIMOgIDExOjQyIFBNLCBEbWl0cnkgVnl1a292IGEgw6ljcml0 IDoKPiA+PiA+Pj4+PiBPbiBUdWUsIEZlYiAxNiwgMjAyMSBhdCA5OjQyIFBNIEFsZXggR2hpdGkg PGFsZXhAZ2hpdGkuZnI+IHdyb3RlOgo+ID4+ID4+Pj4+Pgo+ID4+ID4+Pj4+PiBIaSBEbWl0cnks Cj4gPj4gPj4+Pj4+Cj4gPj4gPj4+Pj4+IExlIDIvMTYvMjEgw6AgNjoyNSBBTSwgRG1pdHJ5IFZ5 dWtvdiBhIMOpY3JpdCA6Cj4gPj4gPj4+Pj4+PiBPbiBUdWUsIEZlYiAxNiwgMjAyMSBhdCAxMjox NyBQTSBEbWl0cnkgVnl1a292IDxkdnl1a292QGdvb2dsZS5jb20+IHdyb3RlOgo+ID4+ID4+Pj4+ Pj4+Cj4gPj4gPj4+Pj4+Pj4gT24gRnJpLCBKYW4gMjksIDIwMjEgYXQgOToxMSBBTSBEbWl0cnkg Vnl1a292IDxkdnl1a292QGdvb2dsZS5jb20+IHdyb3RlOgo+ID4+ID4+Pj4+Pj4+Pj4gSSB3YXMg Zml4aW5nIEtBU0FOIHN1cHBvcnQgZm9yIG15IHN2NDggcGF0Y2hzZXQgc28gSSB0b29rIGEgbG9v ayBhdCB5b3VyCj4gPj4gPj4+Pj4+Pj4+PiBpc3N1ZTogSSBidWlsdCBhIGtlcm5lbCBvbiB0b3Ag b2YgdGhlIGJyYW5jaCByaXNjdi9maXhlcyB1c2luZwo+ID4+ID4+Pj4+Pj4+Pj4gaHR0cHM6Ly9n aXRodWIuY29tL2dvb2dsZS9zeXprYWxsZXIvYmxvYi8yNjlkMjRlODU3YTc1N2QwOWE4OTgwODZh MmZhNmZhNWQ4MjdjM2UxL2Rhc2hib2FyZC9jb25maWcvbGludXgvdXBzdHJlYW0tcmlzY3Y2NC1r YXNhbi5jb25maWcKPiA+PiA+Pj4+Pj4+Pj4+IGFuZCBCdWlsZHJvb3QgMjAyMC4xMS4gSSBoYXZl IHRoZSB3YXJuaW5ncyByZWdhcmRpbmcgdGhlIHVzZSBvZgo+ID4+ID4+Pj4+Pj4+Pj4gX192aXJ0 X3RvX3BoeXMgb24gd3JvbmcgYWRkcmVzc2VzIChidXQgdGhhdCdzIG5vcm1hbCBzaW5jZSB0aGlz IGZ1bmN0aW9uCj4gPj4gPj4+Pj4+Pj4+PiBpcyB1c2VkIGluIHZpcnRfYWRkcl92YWxpZCkgYnV0 IG5vdCB0aGUgc2VnZmF1bHRzIHlvdSBkZXNjcmliZS4KPiA+PiA+Pj4+Pj4+Pj4KPiA+PiA+Pj4+ Pj4+Pj4gSGkgQWxleCwKPiA+PiA+Pj4+Pj4+Pj4KPiA+PiA+Pj4+Pj4+Pj4gTGV0IG1lIHRyeSB0 byByZWJ1aWxkIGJ1aWxkcm9vdCBpbWFnZS4gTWF5YmUgdGhlcmUgd2FzIHNvbWV0aGluZyB3cm9u Zwo+ID4+ID4+Pj4+Pj4+PiB3aXRoIG15IGJ1aWxkLCB0aG91Z2gsIEkgZGlkICdtYWtlIGNsZWFu JyBiZWZvcmUgZG9pbmcuIEJ1dCBhdCB0aGUKPiA+PiA+Pj4+Pj4+Pj4gc2FtZSB0aW1lIGl0IHdv cmtlZCBiYWNrIGluIEp1bmUuLi4KPiA+PiA+Pj4+Pj4+Pj4KPiA+PiA+Pj4+Pj4+Pj4gUmUgV0FS TklOR3MsIHRoZXkgaW5kaWNhdGUga2VybmVsIGJ1Z3MuIEkgYW0gd29ya2luZyBvbiBzZXR0aW5n IHVwIGEKPiA+PiA+Pj4+Pj4+Pj4gc3l6Ym90IGluc3RhbmNlIG9uIHJpc2N2LiBJZiB0aGVyZSBh IFdBUk5JTkcgZHVyaW5nIGJvb3QgdGhlbiB0aGUKPiA+PiA+Pj4+Pj4+Pj4ga2VybmVsIHdpbGwg YmUgbWFya2VkIGFzIGJyb2tlbi4gTm8gZnVydGhlciB0ZXN0aW5nIHdpbGwgaGFwcGVuLgo+ID4+ ID4+Pj4+Pj4+PiBJcyBpdCBhIG1pcy11c2Ugb2YgV0FSTl9PTj8gSWYgc28sIGNvdWxkIGFueWJv ZHkgcGxlYXNlIHJlbW92ZSBpdCBvcgo+ID4+ID4+Pj4+Pj4+PiByZXBsYWNlIGl0IHdpdGggcHJf ZXJyLgo+ID4+ID4+Pj4+Pj4+Cj4gPj4gPj4+Pj4+Pj4KPiA+PiA+Pj4+Pj4+PiBIaSwKPiA+PiA+ Pj4+Pj4+Pgo+ID4+ID4+Pj4+Pj4+IEkndmUgbG9jYWxpemVkIG9uZSBpc3N1ZSB3aXRoIHJpc2N2 L0tBU0FOOgo+ID4+ID4+Pj4+Pj4+IEtBU0FOIGJyZWFrcyBWRFNPIGFuZCB0aGF0J3MgSSB0aGlu ayB0aGUgcm9vdCBjYXVzZSBvZiB3ZWlyZCBmYXVsdHMgSQo+ID4+ID4+Pj4+Pj4+IHNhdyBlYXJs aWVyLiBUaGUgZm9sbG93aW5nIHBhdGNoIGZpeGVzIGl0Lgo+ID4+ID4+Pj4+Pj4+IENvdWxkIHNv bWVib2R5IHBsZWFzZSB1cHN0cmVhbSB0aGlzIGZpeD8gSSBkb24ndCBrbm93IGhvdyB0byBhZGQv cnVuCj4gPj4gPj4+Pj4+Pj4gdGVzdHMgZm9yIHRoaXMuCj4gPj4gPj4+Pj4+Pj4gVGhhbmtzCj4g Pj4gPj4+Pj4+Pj4KPiA+PiA+Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rZXJuZWwv dmRzby9NYWtlZmlsZSBiL2FyY2gvcmlzY3Yva2VybmVsL3Zkc28vTWFrZWZpbGUKPiA+PiA+Pj4+ Pj4+PiBpbmRleCAwY2ZkNmRhNzg0Zjg0Li5jZjNhMzgzYzE3OTlkIDEwMDY0NAo+ID4+ID4+Pj4+ Pj4+IC0tLSBhL2FyY2gvcmlzY3Yva2VybmVsL3Zkc28vTWFrZWZpbGUKPiA+PiA+Pj4+Pj4+PiAr KysgYi9hcmNoL3Jpc2N2L2tlcm5lbC92ZHNvL01ha2VmaWxlCj4gPj4gPj4+Pj4+Pj4gQEAgLTM1 LDYgKzM1LDcgQEAgQ0ZMQUdTX1JFTU9WRV92Z2V0dGltZW9mZGF5Lm8gPSAkKENDX0ZMQUdTX0ZU UkFDRSkgLU9zCj4gPj4gPj4+Pj4+Pj4gICAgICAjIERpc2FibGUgZ2NvdiBwcm9maWxpbmcgZm9y IFZEU08gY29kZQo+ID4+ID4+Pj4+Pj4+ICAgICAgR0NPVl9QUk9GSUxFIDo9IG4KPiA+PiA+Pj4+ Pj4+PiAgICAgIEtDT1ZfSU5TVFJVTUVOVCA6PSBuCj4gPj4gPj4+Pj4+Pj4gK0tBU0FOX1NBTklU SVpFIDo9IG4KPiA+PiA+Pj4+Pj4+Pgo+ID4+ID4+Pj4+Pj4+ICAgICAgIyBGb3JjZSBkZXBlbmRl bmN5Cj4gPj4gPj4+Pj4+Pj4gICAgICAkKG9iaikvdmRzby5vOiAkKG9iaikvdmRzby5zbwo+ID4+ ID4+Pj4+Pgo+ID4+ID4+Pj4+PiBXaGF0J3Mgd2VpcmQgaXMgdGhhdCBJIGRvbid0IGhhdmUgYW55 IGlzc3VlIHdpdGhvdXQgdGhpcyBwYXRjaCB3aXRoIHRoZQo+ID4+ID4+Pj4+PiBmb2xsb3dpbmcg Y29uZmlnIHdoZXJlYXMgaXQgaW5kZWVkIHNlZW1zIHJlcXVpcmVkIGZvciBLQVNBTi4gQnV0IHdo ZW4KPiA+PiA+Pj4+Pj4gbG9va2luZyBhdCB0aGUgc2VnZmF1bHRzIHlvdSBnb3QgZWFybGllciwg dGhlIHNlZ2ZhdWx0IGFkZHJlc3MgaXMgMHhiYjAKPiA+PiA+Pj4+Pj4gYW5kIHRoZSBjYXVzZSBp cyBhbiBpbnN0cnVjdGlvbiBwYWdlIGZhdWx0OiB0aGlzIGFkZHJlc3MgaXMgdGhlIFBMVCBiYXNl Cj4gPj4gPj4+Pj4+IGFkZHJlc3MgaW4gdmRzby5zbyBhbmQgYW4gaW5zdHJ1Y3Rpb24gcGFnZSBm YXVsdCB3b3VsZCBtZWFuIHRoYXQgc29tZW9uZQo+ID4+ID4+Pj4+PiB0cmllZCB0byBqdW1wIGF0 IHRoaXMgYWRkcmVzcywgd2hpY2ggaXMgd2VpcmQuIEF0IGZpcnN0IHNpZ2h0LCB0aGF0IGRvZXMK PiA+PiA+Pj4+Pj4gbm90IHNlZW0gcmVsYXRlZCB0byB5b3VyIHBhdGNoIGFib3ZlLCBidXQgY2xl YXJseSBJIG1heSBiZSB3cm9uZy4KPiA+PiA+Pj4+Pj4KPiA+PiA+Pj4+Pj4gVG9iaWFzLCBkaWQg eW91IG9ic2VydmUgdGhlIHNhbWUgc2VnZmF1bHRzIGFzIERtaXRyeSA/Cj4gPj4gPj4+Pj4KPiA+ PiA+Pj4+Pgo+ID4+ID4+Pj4+IEkgbm90aWNlZCB0aGF0IG5vdCBhbGwgYnVpbGRyb290IGltYWdl cyB1c2UgVkRTTywgaXQgc2VlbXMgdG8gYmUKPiA+PiA+Pj4+PiBkZXBlbmRlbnQgb24gbGliYyBz ZXR0aW5ncyAoYXQgbGVhc3QgSSB0aGluayBJIGNoYW5nZWQgaXQgaW4gdGhlCj4gPj4gPj4+Pj4g cGFzdCkuCj4gPj4gPj4+Pgo+ID4+ID4+Pj4gT2ssIEkgdXNlZCB1Q2xpYmMgYnV0IHRoZW4gd2hl biB1c2luZyBnbGliYywgSSBoYXZlIHRoZSBzYW1lIHNlZ2ZhdWx0cywKPiA+PiA+Pj4+IG9ubHkg d2hlbiBLQVNBTiBpcyBlbmFibGVkLiBBbmQgeW91ciBwYXRjaCBmaXhlcyB0aGUgcHJvYmxlbS4g SSB3aWxsIHRyeQo+ID4+ID4+Pj4gdG8gdGFrZSBhIGxvb2sgbGF0ZXIgdG8gYmV0dGVyIHVuZGVy c3RhbmQgdGhlIHByb2JsZW0uCj4gPj4gPj4+Pgo+ID4+ID4+Pj4+IEkgYWxzbyBib290ZWQgYW4g aW1hZ2UgY29tcGxldGVseSBzdWNjZXNzZnVsbHkgaW5jbHVkaW5nIGRoY3BkL3NzaGQKPiA+PiA+ Pj4+PiBzdGFydCwgYnV0IHRoZW4gbXkgZXhlY3V0YWJsZSBjcmFzaGVkIGluIGNsb2NrX2dldHRp bWUuIFRoZSBleGVjdXRhYmxlCj4gPj4gPj4+Pj4gd2FzIGJ1aWxkIG9uIGxpbnV4L2FtZDY0IGhv c3Qgd2l0aCAicmlzY3Y2NC1saW51eC1nbnUtZ2NjIC1zdGF0aWMiCj4gPj4gPj4+Pj4gKDEwLjIu MSkuCj4gPj4gPj4+Pj4KPiA+PiA+Pj4+Pgo+ID4+ID4+Pj4+Pj4gU2Vjb25kIGlzc3VlIEkgYW0g c2VlaW5nIHNlZW1zIHRvIGJlIHJlbGF0ZWQgdG8gdGV4dCBzZWdtZW50IHNpemUuCj4gPj4gPj4+ Pj4+PiBJIGNoZWNrIG91dCB2NS4xMSBhbmQgdXNlIHRoaXMgY29uZmlnOgo+ID4+ID4+Pj4+Pj4g aHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vZHZ5dWtvdi82YWYyNTQ3NGQ0NTU0Mzc1NzdhODQyMTNi MGNjOTE3OAo+ID4+ID4+Pj4+Pgo+ID4+ID4+Pj4+PiBUaGlzIGNvbmZpZyBnYXZlIG15IGxhcHRv cCBhIGhhcmQgdGltZSAhIEZpbmFsbHkgSSB3YXMgYWJsZSB0byBib290Cj4gPj4gPj4+Pj4+IGNv cnJlY3RseSB0byB1c2Vyc3BhY2UsIGJ1dCBJIHJlYWxpemVkIEkgdXNlZCBteSBzdjQ4IGJyYW5j aC4uLkVpdGhlciBJCj4gPj4gPj4+Pj4+IGZpeGVkIHlvdXIgaXNzdWUgYWxvbmcgdGhlIHdheSBv ciBJIGNhbid0IHJlcHJvZHVjZSBpdCwgSSdsbCBnaXZlIGl0IGEKPiA+PiA+Pj4+Pj4gdHJ5IHRv bW9ycm93Lgo+ID4+ID4+Pj4+Cj4gPj4gPj4+Pj4gV2hlcmUgaXMgeW91ciBicmFuY2g/IEkgY291 bGQgYWxzbyB0ZXN0IGluIG15IHNldHVwIG9uIHlvdXIgYnJhbmNoLgo+ID4+ID4+Pj4+Cj4gPj4g Pj4+Pgo+ID4+ID4+Pj4gWW91IGNhbiBmaW5kIG15IGJyYW5jaCBpbnQvYWxleC9yaXNjdl9rZXJu ZWxfZW5kX29mX2FkZHJlc3Nfc3BhY2VfdjIKPiA+PiA+Pj4+IGhlcmU6IGh0dHBzOi8vZ2l0aHVi LmNvbS9BbGV4R2hpdGkvcmlzY3YtbGludXguZ2l0Cj4gPj4gPj4+Cj4gPj4gPj4+IE5vLCBpdCBk b2VzIG5vdCB3b3JrIGZvciBtZS4KPiA+PiA+Pj4KPiA+PiA+Pj4gU291cmNlIGlzIG9uIGI2MWFi NmM5OGRlMDIxMzk4Y2Q3NzM0ZWE1ZmMzNjU1ZTUxZTcwZjIgKEhFQUQsCj4gPj4gPj4+IGludC9h bGV4L3Jpc2N2X2tlcm5lbF9lbmRfb2ZfYWRkcmVzc19zcGFjZV92MikKPiA+PiA+Pj4gQ29uZmln IGlzIGh0dHBzOi8vZ2lzdC5naXRodWJ1c2VyY29udGVudC5jb20vZHZ5dWtvdi82YWYyNTQ3NGQ0 NTU0Mzc1NzdhODQyMTNiMGNjOTE3OC9yYXcvNTViMTE2NTIyYzE0YThhOThhNzYyNmQ3NmRmNzQw ZDU0ZjY0OGNlNS9naXN0ZmlsZTEudHh0Cj4gPj4gPj4+Cj4gPj4gPj4+IHJpc2N2NjQtbGludXgt Z251LWdjYyAtdgo+ID4+ID4+PiBnY2MgdmVyc2lvbiAxMC4yLjEgMjAyMTAxMTAgKERlYmlhbiAx MC4yLjEtNitidWlsZDEpCj4gPj4gPj4+Cj4gPj4gPj4+IHFlbXUtc3lzdGVtLXJpc2N2NjQgLS12 ZXJzaW9uCj4gPj4gPj4+IFFFTVUgZW11bGF0b3IgdmVyc2lvbiA1LjIuMCAoRGViaWFuIDE6NS4y K2Rmc2ctMykKPiA+PiA+Pj4KPiA+PiA+Pj4gcWVtdS1zeXN0ZW0tcmlzY3Y2NCBcCj4gPj4gPj4+ IC1tYWNoaW5lIHZpcnQgLXNtcCAyIC1tIDJHIFwKPiA+PiA+Pj4gLWRldmljZSB2aXJ0aW8tYmxr LWRldmljZSxkcml2ZT1oZDAgXAo+ID4+ID4+PiAtZHJpdmUgZmlsZT1pbWFnZS1yaXNjdjY0LGlm PW5vbmUsZm9ybWF0PXJhdyxpZD1oZDAgXAo+ID4+ID4+PiAta2VybmVsIGFyY2gvcmlzY3YvYm9v dC9JbWFnZSBcCj4gPj4gPj4+IC1ub2dyYXBoaWMgXAo+ID4+ID4+PiAtZGV2aWNlIHZpcnRpby1y bmctZGV2aWNlLHJuZz1ybmcwIC1vYmplY3QKPiA+PiA+Pj4gcm5nLXJhbmRvbSxmaWxlbmFtZT0v ZGV2L3VyYW5kb20saWQ9cm5nMCBcCj4gPj4gPj4+IC1uZXRkZXYgdXNlcixpZD1uZXQwLGhvc3Q9 MTAuMC4yLjEwLGhvc3Rmd2Q9dGNwOjoxMDAyMi06MjIgLWRldmljZQo+ID4+ID4+PiB2aXJ0aW8t bmV0LWRldmljZSxuZXRkZXY9bmV0MCBcCj4gPj4gPj4+IC1hcHBlbmQgInJvb3Q9L2Rldi92ZGEg ZWFybHlwcmludGs9c2VyaWFsIGNvbnNvbGU9dHR5UzAgb29wcz1wYW5pYwo+ID4+ID4+PiBwYW5p Y19vbl93YXJuPTEgcGFuaWM9ODY0MDAgZWFybHljb24iCj4gPj4gPj4KPiA+PiA+PiBJdCBzdGls bCB3b3JrcyBmb3IgbWUgYnV0IEkgaGFkIHRvIGRpc2FibGUgQ09ORklHX0RFQlVHX0lORk9fQlRG IChJCj4gPj4gPj4gZG9uJ3QgdGhpbmsgdGhhdCBjaGFuZ2VzIGFueXRoaW5nIGF0IHJ1bnRpbWUp LiBCdXQgeW91ciBhYm92ZSBjb21tYW5kCj4gPj4gPj4gbGluZSBkb2VzIG5vdCB3b3JrIGZvciBt ZSBhcyBpdCBhcHBlYXJzIHlvdSBkbyBub3QgbG9hZCBhbnkgZmlybXdhcmUsIGlmCj4gPj4gPj4g SSBhZGQgLWJpb3MgaW1hZ2VzL2Z3X2p1bXAuZWxmLCBpdCB3b3Jrcy4gQnV0IHRoZW4gSSBkb24n dCBrbm93IHdoZXJlCj4gPj4gPj4geW91ciBvcGVuc2JpIG91dHB1dCBiZWxvdyBjb21lcyBmcm9t Li4uCj4gPj4gPj4KPiA+PiA+PiBBbmQgcmVnYXJkaW5nIHlvdXIgaXNzdWUgd2l0aCBjYWxsaW5n IGNsb2NrX2dldHRpbWUgJ2RpcmVjdGx5JyBjb21wYXJlZAo+ID4+ID4+IHRvIHVzaW5nIHRoZSBz eXNjYWxsLCBJIGhhdmUgdGhlIHNhbWUgY29uc2lzdGVudCBvdXRwdXQgZnJvbSBib3RoIGNhbGxz Lgo+ID4+ID4+Cj4gPj4gPj4gSSBoYXZlIGFuIG9sZGVyIGdjYyAoOS4zLjApIGFuZCB0aGUgc2Ft ZSBxZW11LiBJIHRoaW5rIHdoYXQgaXMgbWlzc2luZwo+ID4+ID4+IGhlcmUgaXMgeW91ciBidWls ZHJvb3QgY29uZmlnLCBzbyB0aGF0IHdlIGhhdmUgdGhlIGV4YWN0IHNhbWUKPiA+PiA+PiBlbnZp cm9ubWVudDogY291bGQgeW91IHBvc3QgeW91ciBidWlsZHJvb3QgY29uZmlnIGFzIHdlbGwgPwo+ ID4+ID4KPiA+PiA+IEkgZG9uJ3QgdGhpbmsgdGhlIGltYWdlIGlzIHJlbGV2YW50IGJlY2F1c2Ug SSBkb24ndCBldmVuIGdldCB0byBrZXJuZWwKPiA+PiA+IGNvZGUuIElmIHRoZSBrZXJuZWwgd2ls bCBjb21wbGFpbiBhYm91dCBubyBpbml0IGxhdGVyLCB0aGF0J3MgZmluZS4KPiA+PiA+IFJlIGJp b3MsIHRoaXMgdmVyc2lvbiBvZiBxZW11IGFscmVhZHkgaGFzIE9wZW5TQkkgYmlvcyBidWlsdGlu LCB5b3UKPiA+PiA+IGNhbiBwYXNzIC1iaW9zIGRlZmF1bHQsIGJ1dCB0aGF0J3MsIHdlbGwsIHRo ZSBkZWZhdWx0IDopCj4gPj4gPiBIZXJlIGFyZSBtb3JlIHJlcHJvZHVjaWJsZSByZXBybyBpbnN0 cnVjdGlvbnMgdGhhdCBjYXB0dXJlIGdjYyBhbmQKPiA+PiA+IHFlbXUuIEkgdGhpbmsgZ2NjIHZl cnNpb24gbWF5IGJlIHBvdGVudGlhbGx5IHJlbGV2YW50IGFzIEkgc3VzcGVjdAo+ID4+ID4gY29k ZSBzaXplLgo+ID4+ID4KPiA+PiA+Cj4gPj4gPiBjdXJsIGh0dHBzOi8vZ2lzdC5naXRodWJ1c2Vy Y29udGVudC5jb20vZHZ5dWtvdi82YWYyNTQ3NGQ0NTU0Mzc1NzdhODQyMTNiMGNjOTE3OC9yYXcv NTViMTE2NTIyYzE0YThhOThhNzYyNmQ3NmRmNzQwZDU0ZjY0OGNlNS9naXN0ZmlsZTEudHh0Cj4g Pj4gPj4gJEtFUk5FTF9TUkMvLmNvbmZpZwo+ID4+ID4gZG9ja2VyIHB1bGwgZ2NyLmlvL3N5emth bGxlci9zeXpib3QKPiA+PiA+IGRvY2tlciBydW4gLWl0IC12ICRLRVJORUxfU1JDOi9rZXJuZWwg Z2NyLmlvL3N5emthbGxlci9zeXpib3QKPiA+PiA+IGNkIC9rZXJuZWwKPiA+PiA+IG1ha2UgLWo3 MiBBUkNIPXJpc2N2IENST1NTX0NPTVBJTEU9cmlzY3Y2NC1saW51eC1nbnUtIG9sZGRlZmNvbmZp Zwo+ID4+ID4gbWFrZSAtajcyIEFSQ0g9cmlzY3YgQ1JPU1NfQ09NUElMRT1yaXNjdjY0LWxpbnV4 LWdudS0KPiA+PiA+IHFlbXUtc3lzdGVtLXJpc2N2NjQgLW1hY2hpbmUgdmlydCAtc21wIDIgLW0g NEcgLWtlcm5lbAo+ID4+ID4gYXJjaC9yaXNjdi9ib290L0ltYWdlIC1ub2dyYXBoaWMgLWFwcGVu ZCAiZWFybHljb24gZWFybHlwcmludGs9c2VyaWFsCj4gPj4gPiBjb25zb2xlPXR0eVMwIgo+ID4+ ID4gW3RoaXMgZG9lcyBub3QsIG9ubHkgT3BlblNCSSBvdXRwdXRdCj4gPj4gPgo+ID4+Cj4gPj4g SW5kZWVkIHRoZSBpc3N1ZSB3YXMgY29kZSBzaXplLCBwbGVhc2UgZmluZCB0aGUgZml4IGJlbG93 LiBJIHdpbGwgc2VuZCBhCj4gPj4gcHJvcGVyIHBhdGNoIG9uY2UgSSBtYWRlIHN1cmUgdGhlIGZp eCBpcyB0aGUgcmlnaHQgb25lLCBidXQgSSdtIHByZXR0eQo+ID4+IGNvbmZpZGVudCwgdGhlcmUn cyBubyByZWFzb24gdG8gbGltaXQgdGhlIG1hcHBpbmcgc2l6ZSB0byAxMjhNQiB3aGVyZWFzCj4g Pj4gd2UgaGF2ZSBhIHdob2xlIHBnZGlyLgo+ID4KPiA+IEdyZWF0IHlvdSBnZXQgdG8gdGhlIGJv dHRvbSBvZiB0aGlzIQo+ID4gUmlzY3Yga2VybmVscyBhcmUgZ29pbmcgdG8gYmUgWVVHRSEKPgo+ IElJUkMgSSB0cmllZCB0aGF0IGEgd2hpbGUgYWdvIGFuZCBpdCBkaWRuJ3Qgd29yay4gIEl0J3Mg cG9zc2libGUgSSB3YXMganVzdAo+IHJ1bm5pbmcgaW50byBzb21lIG90aGVyIGJ1ZywgYnV0IEkn bSBqdXN0IGJ1aWxkIHRlc3RpbmcgYWxseWVzY29uZmlnIGFzIG9wcG9zZWQKPiB0byBib290IHRl c3RpbmcgaXQuCj4KPiBJZiB5b3UndmUgZ290IGEgc2V0dXAgdGhhdCBkb2VzIGJvb3QgSSdtIGhh cHB5IHRvIHRha2UgYSBwYXRjaCwgdGhvdWdoLiAgSXQnbGwKPiBhdCBsZWFzdCBiZSBvbmUgc3Rl cCBmb3J3YXJkLgoKCgpPSywgaXQncyBnZXR0aW5nIGJldHRlci4KVGhlIG5leHQgaXNzdWUgaXMg Y2FsbGVkICI1MTIgYnl0ZXMgc2hvdWxkIGJlIGVub3VnaCBmb3IgZXZlcnlvbmUhIiA6KQpodHRw czovL2VsaXhpci5ib290bGluLmNvbS9saW51eC92NS4xMi1yYzIvc291cmNlL2luY2x1ZGUvdWFw aS9hc20tZ2VuZXJpYy9zZXR1cC5oI0w1Ck1vc3Qgb3RoZXIgYXJjaGVzIHJlZGVmaW5lIGl0IHRv IHNvbWV0aGluZyBiaWdnZXI6Cmh0dHBzOi8vZWxpeGlyLmJvb3RsaW4uY29tL2xpbnV4L3Y1LjEy LXJjMi9zb3VyY2UvYXJjaC9zMzkwL2luY2x1ZGUvdWFwaS9hc20vc2V0dXAuaCNMMTAKZXZlbiBh cm0zMiByZWRlZmluZXMgaXQuCkkgYW0gbm90IHN1cmUgdGhlIGRlZmF1bHQgaXMgZXZlbiByZWFz b25hYmxlIGFueW1vcmUuIEZhaWx1cmUgbW9kZSBpcwphbHNvIG5vdCBuaWNlIChzaWxlbnQgdHJ1 bmNhdGlvbikuCldlIGFyZSB0cnlpbmcgdG8gcGFzcyB0aGlzOgoKZWFybHlwcmludGs9c2VyaWFs IG9vcHM9cGFuaWMgbm1pX3dhdGNoZG9nPXBhbmljIHBhbmljPTg2NDAwCm5ldC5pZm5hbWVzPTAg c3lzY3RsLmtlcm5lbC5odW5nX3Rhc2tfYWxsX2NwdV9iYWNrdHJhY2U9MQppbWFfcG9saWN5PXRj YiBrdm0taW50ZWwubmVzdGVkPTEgbmYtY29ubnRyYWNrLWZ0cC5wb3J0cz0yMDAwMApuZi1jb25u dHJhY2stdGZ0cC5wb3J0cz0yMDAwMCBuZi1jb25udHJhY2stc2lwLnBvcnRzPTIwMDAwCm5mLWNv bm50cmFjay1pcmMucG9ydHM9MjAwMDAgbmYtY29ubnRyYWNrLXNhbmUucG9ydHM9MjAwMDAKdml2 aWQubl9kZXZzPTE2IHZpdmlkLm11bHRpcGxhbmFyPTEsMiwxLDIsMSwyLDEsMiwxLDIsMSwyLDEs MiwxLDIKbmV0cm9tLm5yX25kZXZzPTE2IHJvc2Uucm9zZV9uZGV2cz0xNiBzcGVjX3N0b3JlX2J5 cGFzc19kaXNhYmxlPXByY3RsCm51bWE9ZmFrZT0yIG5vcGNpZCBkdW1teV9oY2QubnVtPTggYmlu ZGVyLmRlYnVnX21hc2s9MApyY3VwZGF0ZS5yY3VfZXhwZWRpdGVkPTEgd2F0Y2hkb2dfdGhyZXNo PTE2NQp3b3JrcXVldWUud2F0Y2hkb2dfdGhyZXNoPTQyMCBwYW5pY19vbl93YXJuPTEKClRoZSBs YXN0IHBhcnQgZ2V0cyB0cnVuY2F0ZWQgYW5kIHdlIGFyZSBnZXR0aW5nIGZhbHNlIHdvcmtxdWV1 ZSB3YXRjaGRvZyBzdGFsbHMuCgpDb3VsZCB5b3UgcGxlYXNlIGluY3JlYXNlIGl0PwoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtcmlzY3YgbWFp bGluZyBsaXN0CmxpbnV4LXJpc2N2QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmlu ZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yaXNjdgo=