<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p><br>
    </p>
    <br>
    <div class="moz-cite-prefix">On 2018年05月31日 22:08, lei yang wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:52e38a62-c73d-1948-e82c-0ae057c91401@windriver.com">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <p>hi dengke,</p>
      <p>some of the kernel modules were rmmod-ed twice, some of them
        forget to be rmmod-ed when it fails,</p>
      <p> please take a look. <br>
      </p>
    </blockquote>
    <br>
    Thanks, after bruce update the SRCREV for kernel meta, I will send
    v2.<br>
    <br>
    <blockquote type="cite"
      cite="mid:52e38a62-c73d-1948-e82c-0ae057c91401@windriver.com">
      <p> </p>
      <p>Lei</p>
      <p><br>
      </p>
      <br>
      <div class="moz-cite-prefix">On 2018年05月31日 12:19, Bruce Ashfield
        wrote:<br>
      </div>
      <blockquote
cite="mid:CADkTA4MU3Po893UfDcTeusYA0kkJdMHFHPWx3Z3RdMJS5gj8Xg@mail.gmail.com"
        type="cite">
        <div dir="ltr"><br>
          <div class="gmail_extra"><br>
            <div class="gmail_quote">On Wed, May 30, 2018 at 11:08 PM,
              Dengke Du <span dir="ltr">&lt;<a moz-do-not-send="true"
                  href="mailto:dengke.du@windriver.com" target="_blank">dengke.du@windriver.com</a>&gt;</span>
              wrote:<br>
              <blockquote class="gmail_quote" style="margin:0 0 0
                .8ex;border-left:1px #ccc solid;padding-left:1ex">Signed-off-by:
                Dengke Du &lt;<a moz-do-not-send="true"
                  href="mailto:dengke.du@windriver.com">dengke.du@windriver.com</a>&gt;<br>
                ---<br>
                <span class=""> meta/recipes-kernel/linux/<wbr>files/run-ptest 
                     | 138 ++++++++++++++++++++++++++<br>
                </span></blockquote>
              <div><br>
              </div>
              <div>Nothing else in linux-yocto uses "files", and this
                shouldn't either.</div>
              <div><br>
              </div>
              <div>We can't guarantee that these are version
                independent, so they need to be in  a versioned</div>
              <div>kernel subdirectory.</div>
              <div><br>
              </div>
              <div> </div>
              <blockquote class="gmail_quote" style="margin:0 0 0
                .8ex;border-left:1px #ccc solid;padding-left:1ex"><span
                  class="">  meta/recipes-kernel/linux/<wbr>linux-yocto.inc 
                     |   8 ++<br>
                   meta/recipes-kernel/linux/<a moz-do-not-send="true"
                    href="http://linux-yocto_4.14.bb" rel="noreferrer"
                    target="_blank">linu<wbr>x-yocto_4.14.bb</a> |   2
                  +-<br>
                   3 files changed, 147 insertions(+), 1 deletion(-)<br>
                   create mode 100644 meta/recipes-kernel/linux/<wbr>files/run-ptest<br>
                  <br>
                </span>diff --git a/meta/recipes-kernel/linux/<wbr>files/run-ptest
                b/meta/recipes-kernel/linux/<wbr>files/run-ptest<br>
                new file mode 100644<br>
                index 0000000..a3d9e14<br>
                --- /dev/null<br>
                +++ b/meta/recipes-kernel/linux/<wbr>files/run-ptest<br>
                @@ -0,0 +1,138 @@<br>
                +#!/bin/bash<br>
              </blockquote>
              <div><br>
              </div>
              <div>This script should have a license and proper header
                file.</div>
              <div><br>
              </div>
              <div>Also, if the ptests are mainly trace/sample related,
                name the script to indicate that.</div>
              <div><br>
              </div>
              <div>The kernel already has a significant number of
                selftests, which are likely better than</div>
              <div>these ptests. Is there any reason why they aren't
                being used instead ?</div>
              <div> </div>
              <blockquote class="gmail_quote" style="margin:0 0 0
                .8ex;border-left:1px #ccc solid;padding-left:1ex">
                +depmod<br>
                +touch kernel.log<br>
                +<br>
                +#dma-example bytestream-example inttype-example
                record-example<br>
                +list1=("dma-example" "bytestream-example"
                "inttype-example" "record-example")<br>
                +for i in "${list1[@]}"<br>
                +do<br>
                +  dmesg -c<br>
                +  modprobe "$i"<br>
                +  result=""<br>
                +  IFS="-" read -ra array &lt;&lt;&lt; "$i"<br>
                +  len=${#array[@]}<br>
                +  if [ $len -eq 2 ];then<br>
                +    result="${array[0]}_${array[1]<wbr>}"<br>
                +  elif [ $len -eq 3 ];then<br>
                +    result="${array[0]}_${array[1]<wbr>}_${array[2]}"<br>
                +  fi<br>
                +  lsmod | grep -q "$result"<br>
                +  if [ $? -eq 0 ];then<br>
                +    dmesg | grep "test passed"<br>
                +    if [ $? -eq 0 ];then<br>
                +      echo "$i: PASS" &gt;&gt; kernel.log<br>
                +    fi<br>
                +    rmmod "$i"<br>
                +  else<br>
                +    echo "$i: FAILED" &gt;&gt; kernel.log<br>
                +  fi<br>
                +done<br>
                +<br>
                +#kobject-example kset-example<br>
                +list2=("kobject-example" "kset-example")<br>
                +for i in "${list2[@]}"<br>
                +do<br>
                +  dmesg -c<br>
                +  modprobe "$i"<br>
                +  result=""<br>
                +  IFS="-" read -ra array &lt;&lt;&lt; "$i"<br>
                +  len=${#array[@]}<br>
                +  if [ $len -eq 2 ];then<br>
                +    result="${array[0]}_${array[1]<wbr>}"<br>
                +  elif [ $len -eq 3 ];then<br>
                +    result="${array[0]}_${array[1]<wbr>}_${array[2]}"<br>
                +  fi<br>
                +  basedir="/sys/kernel/${result}<wbr>"<br>
                +  echo "$basedir"<br>
                +  if [ -e ${basedir}/bar -a -e ${basedir}/baz -a -e
                ${basedir}/foo ];then<br>
                +    echo "$i: PASS" &gt;&gt; kernel.log<br>
                +    rmmod "$i"<br>
                +  else<br>
                +    echo "$i: FAILED" &gt;&gt; kernel.log<br>
                +  fi<br>
                +done<br>
                +<br>
                +#trace-events-sample<br>
                +list3="trace-events-sample"<br>
                +result=""<br>
                +IFS="-" read -ra array &lt;&lt;&lt; "$list3"<br>
                +len=${#array[@]}<br>
                +if [ $len -eq 2 ];then<br>
                +  result="${array[0]}_${array[1]<wbr>}"<br>
                +elif [ $len -eq 3 ];then<br>
                +  result="${array[0]}_${array[1]<wbr>}_${array[2]}"<br>
                +fi<br>
                +modprobe "$list3"<br>
                +lsmod | grep "$result"<br>
                +if [ $? -eq 0 ];then<br>
                +  if [ -e "/sys/kernel/debug/tracing/<wbr>events/sample-trace"
                ];then<br>
                +    echo 1 &gt; /sys/kernel/debug/tracing/<wbr>events/sample-trace/enable<br>
                +    sleep 5<br>
                +    ret=`cat /sys/kernel/debug/tracing/<wbr>trace |
                grep hello | head -n1 | cut -d':' -f2`<br>
                +    if [ "$ret" = " foo_bar" ];then<br>
                +      echo "$list3: PASS"  &gt;&gt; kernel.log<br>
                +    else<br>
                +      echo "$list3: FAILED-" &gt;&gt; kernel.log<br>
                +    fi<br>
                +  else<br>
                +    echo "$list3: FAILED--" &gt;&gt; kernel.log<br>
                +  fi<br>
                +else<br>
                +  echo "$list3: FAILED---" &gt;&gt; kernel.log<br>
                +fi<br>
                +rmmod "$list3"<br>
                +<br>
                +#trace-printk<br>
                +list4="trace-printk"<br>
                +modprobe "$list4"<br>
                +lsmod | grep "trace_printk"<br>
                +if [ $? -eq 0 ];then<br>
                +  ret=`cat /sys/kernel/debug/tracing/<wbr>trace | grep
                trace_printk | head -n1 | cut -d':' -f2`<br>
                +  if [ "$ret" = " trace_printk_irq_work" ];then<br>
                +    echo "$list4: PASS" &gt;&gt; kernel.log<br>
                +    rmmod "$list4"<br>
                +  else<br>
                +    echo "$list4: FAILED" &gt;&gt; kernel.log<br>
                +  fi<br>
                +else<br>
                +  echo "$list4: FAILED" &gt;&gt; kernel.log<br>
                +fi<br>
                +rmmod "$list4"<br>
                +<br>
                +#kprobe_example<br>
                +list5="kprobe_example"<br>
                +dmesg -c<br>
                +modprobe "$list5"<br>
                +lsmod | grep "$list5"<br>
                +if [ $? -eq 0 ];then<br>
                +  dmesg | grep "_do_fork"<br>
                +  if [ $? -eq 0 ];then<br>
                +    echo "$list5: PASS" &gt;&gt; kernel.log<br>
                +  else<br>
                +    echo "$list5: FAILED" &gt;&gt; kernel.log<br>
                +  fi<br>
                +else<br>
                +  echo "$list5: FAILED" &gt;&gt; kernel.log<br>
                +fi<br>
                +rmmod "$list5"<br>
                +<br>
                +#kretprobe_example<br>
                +list6="kretprobe_example"<br>
                +dmesg -c<br>
                +modprobe "$list6"<br>
                +lsmod | grep "$list6"<br>
                +if [ $? -eq 0 ];then<br>
                +  dmesg | grep "_do_fork returned"<br>
                +  if [ $? -eq 0 ];then<br>
                +    echo "$list6: PASS" &gt;&gt; kernel.log<br>
                +  else<br>
                +    echo "$list6: FAILED" &gt;&gt; kernel.log<br>
                +  fi<br>
                +else<br>
                +  echo "$list6: FAILED" &gt;&gt; kernel.log<br>
                +fi<br>
                +rmmod "$list6"<br>
                +<br>
                +echo "#####result#####"<br>
                +cat kernel.log<br>
                +rm kernel.log<br>
                diff --git a/meta/recipes-kernel/linux/<wbr>linux-yocto.inc
                b/meta/recipes-kernel/linux/<wbr>linux-yocto.inc<br>
                index 95ec2a2..7e1773e 100644<br>
                --- a/meta/recipes-kernel/linux/<wbr>linux-yocto.inc<br>
                +++ b/meta/recipes-kernel/linux/<wbr>linux-yocto.inc<br>
                @@ -67,3 +67,11 @@ do_install_append(){<br>
                 addtask kernel_version_sanity_check after
                do_kernel_metadata do_kernel_checkout before do_compile<br>
                 addtask validate_branches before do_patch after
                do_kernel_checkout<br>
                 addtask kernel_configcheck after do_configure before
                do_compile<br>
                +<br>
                +inherit ptest<br>
                +SRC_URI_append = " <a class="moz-txt-link-freetext"
                  href="file://run-ptest" moz-do-not-send="true">file://run-ptest</a>
                \<br>
                +"<br>
                +do_install_ptest_append() {<br>
                +       install -D ${WORKDIR}/run-ptest
                ${D}${PTEST_PATH}/run-ptest<br>
                +}<br>
                +KERNEL_FEATURES_append = "
                ${@bb.utils.contains("DISTRO_<wbr>FEATURES", "ptest",
                "features/kernel-sample/<wbr>kernel-sample.scc", "",
                d)}"<br>
                diff --git a/meta/recipes-kernel/linux/<a
                  moz-do-not-send="true"
                  href="http://linux-yocto_4.14.bb" rel="noreferrer"
                  target="_blank">li<wbr>nux-yocto_4.14.bb</a>
                b/meta/recipes-kernel/linux/<a moz-do-not-send="true"
                  href="http://linux-yocto_4.14.bb" rel="noreferrer"
                  target="_blank">li<wbr>nux-yocto_4.14.bb</a><br>
                index 16142f8..7002693 100644<br>
                --- a/meta/recipes-kernel/linux/<a
                  moz-do-not-send="true"
                  href="http://linux-yocto_4.14.bb" rel="noreferrer"
                  target="_blank">li<wbr>nux-yocto_4.14.bb</a><br>
                +++ b/meta/recipes-kernel/linux/<a
                  moz-do-not-send="true"
                  href="http://linux-yocto_4.14.bb" rel="noreferrer"
                  target="_blank">li<wbr>nux-yocto_4.14.bb</a><br>
                @@ -19,7 +19,7 @@ SRCREV_machine_qemux86 ?= "<wbr>74f6cd2b6976e37491779fcb1bc496<wbr>6d3a61492c"<br>
                 SRCREV_machine_qemux86-64 ?= "<wbr>74f6cd2b6976e37491779fcb1bc496<wbr>6d3a61492c"<br>
                 SRCREV_machine_qemumips64 ?= "<wbr>9863b327e770b42b8c18da3e0cfaf0<wbr>6e8f99ae97"<br>
                 SRCREV_machine ?= "<wbr>74f6cd2b6976e37491779fcb1bc496<wbr>6d3a61492c"<br>
                -SRCREV_meta ?= "<wbr>ea9330894eea727bd1655569b16f33<wbr>8976b72563"<br>
                +SRCREV_meta ?= "<wbr>53336e1b7d969f21d8214ec9ceeb48<wbr>fba4f99372"<br>
              </blockquote>
              <div><br>
              </div>
              <div>Do not bump the SRCREV for meta in this series.</div>
              <div><br>
              </div>
              <div>If your feature depends on something in the meta
                branch (which it does), wait until I've sent my next
                series before sending this.</div>
              <div><br>
              </div>
              <div>Bruce</div>
              <div> </div>
              <blockquote class="gmail_quote" style="margin:0 0 0
                .8ex;border-left:1px #ccc solid;padding-left:1ex"> <br>
                 SRC_URI = "git://<a moz-do-not-send="true"
href="http://git.yoctoproject.org/linux-yocto.git;name=machine;branch=$%7BKBRANCH%7D"
                  rel="noreferrer" target="_blank">git.yoctoproject.org/<wbr>linux-yocto.git;name=machine;<wbr>branch=${KBRANCH}</a>;
                \<br>
                            git://<a moz-do-not-send="true"
href="http://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.14;destsuffix=$%7BKMETA%7D"
                  rel="noreferrer" target="_blank">git.yoctoproject.org/<wbr>yocto-kernel-cache;type=kmeta;<wbr>name=meta;branch=yocto-4.14;<wbr>destsuffix=${KMETA}</a>"<br>
                <div class="HOEnZb">
                  <div class="h5">-- <br>
                    2.7.4<br>
                    <br>
                    -- <br>
                    ______________________________<wbr>_________________<br>
                    Openembedded-core mailing list<br>
                    <a moz-do-not-send="true"
                      href="mailto:Openembedded-core@lists.openembedded.org">Openembedded-core@lists.<wbr>openembedded.org</a><br>
                    <a moz-do-not-send="true"
                      href="http://lists.openembedded.org/mailman/listinfo/openembedded-core"
                      rel="noreferrer" target="_blank">http://lists.openembedded.org/<wbr>mailman/listinfo/openembedded-<wbr>core</a><br>
                  </div>
                </div>
              </blockquote>
            </div>
            <br>
            <br clear="all">
            <div><br>
            </div>
            -- <br>
            <div class="gmail_signature"
              data-smartmail="gmail_signature">"Thou shalt not follow
              the NULL pointer, for chaos and madness await thee at its
              end"</div>
          </div>
        </div>
        <br>
        <fieldset class="mimeAttachmentHeader"></fieldset>
        <br>
      </blockquote>
      <br>
    </blockquote>
    <br>
  </body>
</html>