linux-riscv.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: Carlos Eduardo de Paula <me@carlosedp.com>
To: David Abdurachmanov <david.abdurachmanov@gmail.com>
Cc: David Abdurachmanov <david.abdurachmanov@sifive.com>,
	linux-riscv <linux-riscv@lists.infradead.org>,
	Palmer Dabbelt <palmerdabbelt@google.com>,
	Joel Sing <joel@sing.id.au>,
	Paul Walmsley <paul.walmsley@sifive.com>
Subject: Re: Errors and segmentation fault while building Golang on Kernel after v5.4-rc3
Date: Fri, 31 Jan 2020 11:20:46 -0300	[thread overview]
Message-ID: <CADnnUqciAtweH6KqxvK7Z5ZL-uqOQHujWQBrt+aj2y+31BpuHQ@mail.gmail.com> (raw)
In-Reply-To: <CAEn-LTrSXHdfp9OPGRSoJCfi8D8Cg8FqS=_-JYpDatAT0X5C0w@mail.gmail.com>

My board is running:

SiFive FSBL:       2018-03-20
OpenSBI v0.5-44-g049ad0b
U-Boot 2020.01-dirty (Jan 08 2020 - 18:05:52 -0200)

All build on january 8 using the guide I've wrote here
(https://github.com/carlosedp/riscv-bringup/tree/master/unleashed)
after our talks.

Haven't tested newer versions on Qemu, might build it to give a try. I
have v5.4-rc3 built for Qemu and it works fine.

Carlos

On Fri, Jan 31, 2020 at 10:32 AM David Abdurachmanov
<david.abdurachmanov@gmail.com> wrote:
>
> On Fri, Jan 31, 2020 at 2:14 PM Carlos Eduardo de Paula
> <me@carlosedp.com> wrote:
> >
> > Golang has been recently upstreamed and I've been building multiple
> > versions on my Unleashed board successfully with kernel 5.3-rc4 and
> > previous.
> >
> > I noticed that after I updated my Kernel from v5.3-rc4 to v5.5-rc5,
> > Golang doesn't build anymore failing on multiple points and
> > segfaulting as well.
>
> Could you also mention what version of OpenSBI you use?
> Does it also fail on QEMU (avoid 4.2.0) or only on Unleashed?
>
> >
> > I've captured a few logs with the error building here:
> >
> > I've bisected the versions between v5.4-rc3 and v5.4 and it pointed
> > out that the commit below is the starting point.
> >
> > eb93685847a9055283d05951c1b205e737f38533 is the first bad commit
> > commit eb93685847a9055283d05951c1b205e737f38533
> > Author: Paul Walmsley <paul.walmsley@sifive.com>
> > Date: Wed Aug 7 19:07:34 2019 -0700
> >
> > riscv: fix flush_tlb_range() end address for flush_tlb_page()
> >
> > The RISC-V kernel implementation of flush_tlb_page() when CONFIG_SMP
> > is set is wrong. It passes zero to flush_tlb_range() as the final
> > address to flush, but it should be at least 'addr'.
> >
> > Some other Linux architecture ports use the beginning address to
> > flush, plus PAGE_SIZE, as the final address to flush. This might
> > flush slightly more than what's needed, but it seems unlikely that
> > being more clever would improve anything. So let's just take that
> > implementation for now.
> >
> > While here, convert the macro into a static inline function, primarily
> > to avoid unintentional multiple evaluations of 'addr'.
> >
> > This second version of the patch fixes a coding style issue found by
> > Christoph Hellwig <hch@lst.de>.
> >
> > Reported-by: Andreas Schwab <schwab@suse.de>
> > Signed-off-by: Paul Walmsley <paul.walmsley@sifive.com>
> > Reviewed-by: Christoph Hellwig <hch@lst.de>
> >
> > :040000 040000 1a4ee20b3614c93de2a925bba2df6f2e1518f227
> > 6b4ffd3e1a2245912cf734a8a3f61db7eb0ccd67 M arch
> >
> > > git bisect visualize
> > eb93685 N 6 months ago Paul ..riscv: fix flush_tlb_range() end address
> > for flush_tlb_page() HEAD, refs/bisect/bad
> >
> >
> > > git diff eb93685^!
> >
> > ```diff
> > diff --git a/arch/riscv/include/asm/tlbflush.h
> > b/arch/riscv/include/asm/tlbflush.h
> > index 687dd19..4d9bbe8 100644
> > --- a/arch/riscv/include/asm/tlbflush.h
> > +++ b/arch/riscv/include/asm/tlbflush.h
> > @@ -53,10 +53,17 @@ static inline void remote_sfence_vma(struct
> > cpumask *cmask, unsigned long start,
> > }
> >
> > #define flush_tlb_all() sbi_remote_sfence_vma(NULL, 0, -1)
> > -#define flush_tlb_page(vma, addr) flush_tlb_range(vma, addr, 0)
> > +
> > #define flush_tlb_range(vma, start, end) \
> > remote_sfence_vma(mm_cpumask((vma)->vm_mm), start, (end) - (start))
> > -#define flush_tlb_mm(mm) \
> > +
> > +static inline void flush_tlb_page(struct vm_area_struct *vma,
> > + unsigned long addr)
> > +{
> > + flush_tlb_range(vma, addr, addr + PAGE_SIZE);
> > +}
> > +
> > +#define flush_tlb_mm(mm) \
> > remote_sfence_vma(mm_cpumask(mm), 0, -1)
> >
> > #endif /* CONFIG_SMP */
> > ```
> >
> > I was not able to revert this change from recent v5.5.0 so I don't
> > know if this is the problem or some close commits:
> >
> > > git log 2b245b8b..2f478b60 |grep riscv
> > 2f478b6 N 6 months ago Linus..Merge tag 'riscv/for-v5.3-rc5' of
> > git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux
> > 69703eb N 6 months ago Vince..riscv: Make __fstate_clean() work correctly.
> > 8ac71d7 N 6 months ago Vince..riscv: Correct the initialized flow of FP register
> > eb93685 N 6 months ago Paul ..riscv: fix flush_tlb_range() end address
> > for flush_tlb_page()
> >
> > Carlos
> > --
> > ________________________________________
> > Carlos Eduardo de Paula
> > me@carlosedp.com
> > http://carlosedp.com
> > http://twitter.com/carlosedp
> > Linkedin
> > ________________________________________
> >
>


-- 
________________________________________
Carlos Eduardo de Paula
me@carlosedp.com
http://carlosedp.com
http://twitter.com/carlosedp
Linkedin
________________________________________


  reply	other threads:[~2020-01-31 14:21 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-31 13:14 Errors and segmentation fault while building Golang on Kernel after v5.4-rc3 Carlos Eduardo de Paula
2020-01-31 13:32 ` David Abdurachmanov
2020-01-31 14:20   ` Carlos Eduardo de Paula [this message]
2020-01-31 16:32     ` Carlos Eduardo de Paula
2020-02-01  4:58       ` Atish Patra
2020-02-01  5:08         ` William Grant
2020-02-01 18:58           ` Carlos Eduardo de Paula
2020-02-01 23:37             ` William Grant
2020-02-02 12:30               ` Atish Patra
2020-02-03 15:06                 ` Carlos Eduardo de Paula
     [not found]                   ` <CADnnUqeBrJ9MwwDTY2rBkboAJHSwivuZ_Rk69C0sNGSRw1UR3Q@mail.gmail.com>
     [not found]                     ` <CAPSAq_wVVvBAo184tYa0V7e8KoFRJMQULA7jYW=Lu=Wgbipx2A@mail.gmail.com>
2020-03-13 17:55                       ` Carlos Eduardo de Paula
2020-02-13  2:02         ` Paul Walmsley

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CADnnUqciAtweH6KqxvK7Z5ZL-uqOQHujWQBrt+aj2y+31BpuHQ@mail.gmail.com \
    --to=me@carlosedp.com \
    --cc=david.abdurachmanov@gmail.com \
    --cc=david.abdurachmanov@sifive.com \
    --cc=joel@sing.id.au \
    --cc=linux-riscv@lists.infradead.org \
    --cc=palmerdabbelt@google.com \
    --cc=paul.walmsley@sifive.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).