Hi Ira, On 5/18/20 5:03 PM, Ira Weiny wrote: > On Sun, May 17, 2020 at 09:29:32PM -0700, Guenter Roeck wrote: >> On Sun, May 17, 2020 at 08:49:39PM -0700, Ira Weiny wrote: >>> On Sat, May 16, 2020 at 03:33:06PM -0700, Guenter Roeck wrote: >>>> On Thu, May 07, 2020 at 07:59:55AM -0700, ira.weiny@xxxxxxxxx wrote: >>>>> From: Ira Weiny <ira.weiny@xxxxxxxxx> >>>>> >>>>> Every single architecture (including !CONFIG_HIGHMEM) calls... >>>>> >>>>> pagefault_enable(); >>>>> preempt_enable(); >>>>> >>>>> ... before returning from __kunmap_atomic(). Lift this code into the >>>>> kunmap_atomic() macro. >>>>> >>>>> While we are at it rename __kunmap_atomic() to kunmap_atomic_high() to >>>>> be consistent. >>>>> >>>>> Reviewed-by: Christoph Hellwig <hch@xxxxxx> >>>>> Signed-off-by: Ira Weiny <ira.weiny@xxxxxxxxx> >>>> >>>> This patch results in: >>>> >>>> Starting init: /bin/sh exists but couldn't execute it (error -14) >>>> >>>> when trying to boot microblazeel:petalogix-ml605 in qemu. >>> >>> Thanks for the report. I'm not readily seeing the issue. >>> >>> Do you have a kernel config? Specifically is CONFIG_HIGHMEM set? >>> >> See below. Yes, CONFIG_HIGHMEM is set. >> >> The scripts used to build and boot the image are at: >> >> https://github.com/groeck/linux-build-test/tree/master/rootfs/microblazeel > > Despite finding the obvious error earlier today I've still been trying to get > this to work. > > I had to make some slight modifications to use the 0-day cross compile build > and my local qemu build. But those were pretty minor modifications. I'm > running on x86_64 host. > > With those slight mods to the scripts I get the following error even without my > patch set on 5.7-rc4. I have 1 cpu pegged at 100% while it is running... Is > there anything I can do to get more debug output? Perhaps I just need to let > it run longer? > I don't think so. Try running it with "-d" parameter (run-qemu-microblazeel.sh -d petalogix-s3adsp1800); that gives you the qemu command line. Once it says "running", abort the script and execute qemu directly. Oh, and please update the repository; turns out I didn't push for a while and made a number of changes. My compiler was compiled with buildroot (a long time ago). I don't recall if it needed something special in the configuration, unfortunately. Guenter > Thanks, > Ira > > 16:46:54 > ../linux-build-test/rootfs/microblazeel/run-qemu-microblazeel.sh > Build reference: v5.7-rc4-2-g7c2411d7fb6a > > Building microblaze:petalogix-s3adsp1800:qemu_microblazeel_defconfig ... > running ................ failed (silent) > ------------ > qemu log: > qemu-system-microblazeel: terminating on signal 15 from pid 3277686 (/bin/bash) > ------------ > Building microblaze:petalogix-ml605:qemu_microblazeel_ml605_defconfig ... > running ................ failed (silent) > ------------ > qemu log: > qemu-system-microblazeel: terminating on signal 15 from pid 3277686 (/bin/bash) > ------------ > > <env changes> > 16:47:23 > git di > diff --git a/rootfs/microblazeel/run-qemu-microblazeel.sh b/rootfs/microblazeel/run-qemu-microblazeel.sh > index 68d4de39ab50..0d6a4f85308f 100755 > --- a/rootfs/microblazeel/run-qemu-microblazeel.sh > +++ b/rootfs/microblazeel/run-qemu-microblazeel.sh > @@ -3,7 +3,8 @@ > dir=$(cd $(dirname $0); pwd) > . ${dir}/../scripts/common.sh > > -QEMU=${QEMU:-${QEMU_BIN}/qemu-system-microblazeel} > +#QEMU=${QEMU:-${QEMU_BIN}/qemu-system-microblazeel} > +QEMU=/home/iweiny/dev/qemu/microblazeel-softmmu/qemu-system-microblazeel > PREFIX=microblazeel-linux- > ARCH=microblaze > PATH_MICROBLAZE=/opt/kernel/microblazeel/gcc-4.9.1/usr/bin > diff --git a/rootfs/scripts/common.sh b/rootfs/scripts/common.sh > index 8fa6a9be2b2f..c4550a27beaa 100644 > --- a/rootfs/scripts/common.sh > +++ b/rootfs/scripts/common.sh > @@ -1,5 +1,9 @@ > #!/bin/bash > > +# Set up make.cross > +export COMPILER_INSTALL_PATH=$HOME/0day > +export GCC_VERSION=6.5.0 > + > # Set the following variable to true to skip DC395/AM53C97 build tests > __skip_dc395=0 > > @@ -569,7 +573,7 @@ doclean() > then > git clean -x -d -f -q > else > - make ARCH=${ARCH} mrproper >/dev/null 2>&1 > + make.cross ARCH=${ARCH} mrproper >/dev/null 2>&1 > fi > } > > @@ -669,7 +673,7 @@ __setup_config() > cp ${__progdir}/${defconfig} arch/${arch}/configs > fi > > - if ! make ARCH=${ARCH} CROSS_COMPILE=${PREFIX} ${defconfig} >/dev/null 2>&1 </dev/null; then > + if ! make.cross ARCH=${ARCH} ${defconfig} >/dev/null 2>&1 </dev/null; then > return 2 > fi > > @@ -687,7 +691,7 @@ __setup_config() > if [[ "${rel}" = "v3.16" ]]; then > target="oldconfig" > fi > - if ! make ARCH=${ARCH} CROSS_COMPILE=${PREFIX} ${target} >/dev/null 2>&1 </dev/null; then > + if ! make.cross ARCH=${ARCH} ${target} >/dev/null 2>&1 </dev/null; then > return 1 > fi > fi > @@ -1038,7 +1042,7 @@ dosetup() > rootfs="$(setup_rootfs ${dynamic} ${rootfs})" > __common_fixups "${fixups}" "${rootfs}" > > - make -j${maxload} ARCH=${ARCH} CROSS_COMPILE=${PREFIX} ${EXTRAS} </dev/null >/dev/null 2>${logfile} > + make.cross -j${maxload} ARCH=${ARCH} ${EXTRAS} </dev/null >/dev/null 2>${logfile} > rv=$? > if [ ${rv} -ne 0 ] > then > > </env changes> >