<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.gmail-m1627042294443862642msolistparagraph, li.gmail-m1627042294443862642msolistparagraph, div.gmail-m1627042294443862642msolistparagraph
        {mso-style-name:gmail-m_1627042294443862642msolistparagraph;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:1422482926;
        mso-list-template-ids:-2024771990;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1
        {mso-list-id:1700814117;
        mso-list-template-ids:1667913012;}
@list l1:level1
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level2
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level5
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level8
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Hi Ilja,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">At step 3 , I was able to open the localhost:8998 , and login as manager:manager. Then I entered to my kernel module directory and ran “clade-intercept make” and executed the step5.
<o:p></o:p></p>
<p class="MsoNormal">In web interface also , I have edited the job.json file as you mentioned. But still I am not able to see the static analysis report in the webpage.  <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Can you please tell me how to view the report. If you can send an example , that would be helpful too.
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
<p class="MsoNormal">Puneet<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> Ilja Zakharov <ilja.zakharov@ispras.ru> <br>
<b>Sent:</b> Friday, June 28, 2019 2:02 PM<br>
<b>To:</b> Puneet Gupta <PUNEETG@xilinx.com><br>
<b>Cc:</b> Alexey Khoroshilov <khoroshilov@ispras.ru>; ldv-project@linuxtesting.org<br>
<b>Subject:</b> Re: [ldv-project] Queries in running the LDV.<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p style="mso-line-height-alt:10.0pt"><span style="font-size:12.0pt;font-family:"Arial",sans-serif;color:red">EXTERNAL EMAIL<o:p></o:p></span></p>
<div>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">Hi Puneet,<br>
<br>
Thanks for your interest in the Klever verification framework.<br>
<br>
To verify your separate driver you should do the following steps:<br>
1) First, be sure that you have some kernel version sources files to compile your driver with. It is better to choose versions of Linux in between 3.14 and 4.6.7. It is possible to check a driver with a newer version of the Linux kernel but it will require
 additional steps. Both the driver and Kernel should be configured and compiled for x86_64 architecture preferably.<br>
<br>
2) Install the Klever framework according to this manual: <a href="https://klever.readthedocs.io/en/latest/deploy.html">
https://klever.readthedocs.io/en/latest/deploy.html</a><br>
(!) Klever will need a lot of computational resources to run, so avoid installing it on a laptop. If your driver is an open source we can even give you access to a virtual machine with Klever to try it.<br>
<br>
3) Before trying to verify your own driver just ensure that all is installed correctly. To do that open localhost:8998, log in as manager:manager and try to solve a preexisting verification job there. If all goes smoothly, go to the next step.<br>
<br>
4) Prepare a build base for your driver. To do that just configure the kernel and your driver and build it with a prefix command:<br>
<br>
    clade-intercept <your compilation command>"<br>
<br>
(An example: clade-intercept make -j8 M=drivers/net/usb)<br>
Prepare the environment:<br>
           export PATH=$KLEVER_DEPLOY_DIR/klever-addons/CIF/bin/:$PATH<br>
Where $KLEVER_DEPLOY_DIR  is an absolute path to Klever installation directory. Run "cif --help" to be sure that path is correct.<br>
Then run the second command to create the build base:<br>
           clade-all -p linux_kernel cmds.txt<br>
<br>
After the command, you will have a directory named "clade". I refer to it as <clade dir> in the next steps below.<br>
<br>
5. After Klever installation, you can build the kernel and create a build base.<br>
a) Modify the configuration file that you have used for Klever installation and add there the following entry: "Klever Build Bases": ["<clade dir>"]<br>
b) Run again installation command exactly as at installation but replace keyword "install" with "update"<br>
<br>
6) That is almost all. Go to the web interface. Copy your test job, click "modify", choose job.json file and in the opened editor window set proper setting and identifiers of rules to check. You will need there to set fields "build base" as "clade", "requirements"
 as ["linux:memory safety"] (or add additional rules to check).<br>
<br>
If you need an example write me back. <o:p></o:p></p>
</div>
<p class="MsoNormal">7) To uninstall Klever use installation command with command "uninstall" instead of "install".  
<o:p></o:p></p>
<div>
<p class="MsoNormal"><br>
Please, do not hesitate to write me back and ask questions.<br>
<br>
Best,<br>
Ilia Zakharov<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">чт, 27 июн. 2019 г. в 20:57, Puneet Gupta <<a href="mailto:PUNEETG@xilinx.com">PUNEETG@xilinx.com</a>>:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Hi Alexey,<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Thanks for your mail.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">I have downloaded the klever package and managed to install it also by following the instructions given in the “local deployment” section.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><a href="https://buildmedia.readthedocs.org/media/pdf/klever/latest/klever.pdf" target="_blank">https://buildmedia.readthedocs.org/media/pdf/klever/latest/klever.pdf</a><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Can you guide me how to run the klever tool on my kernel module? Is there any doc which I can follow in which step by step the instructions are given?<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Currently I have my kernel module as a tar.bz2 and I want to do static analysis on it.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">I tried running ,
<o:p></o:p></p>
<ul type="disc">
<li class="gmail-m1627042294443862642msolistparagraph" style="mso-list:l0 level1 lfo1">
cd bridge<o:p></o:p></li><li class="gmail-m1627042294443862642msolistparagraph" style="mso-list:l0 level1 lfo1">
python3 manage.py test<o:p></o:p></li></ul>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">I got the following error:<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><i>  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed</i><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><i>  File "/group/cdc_hd/members/puneetg/kernel_static_analysis/klever/klever-inst/klever/bridge/bridge/__init__.py", line 21, in <module></i><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><i>    from bridge.settings import DATABASES</i><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><i>ModuleNotFoundError: No module named 'bridge.settings'</i><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><i> </i><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">I can also see “linux-3.14.79.tar.xz” tar file in “build bases” directory. Shall I need to place my external module tar file in that directory and run some tests?<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Thanks,<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Puneet<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<div>
<div style="border:none;border-top:solid windowtext 1.0pt;padding:3.0pt 0in 0in 0in;border-color:currentcolor currentcolor">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><b>From:</b> Alexey Khoroshilov <<a href="mailto:khoroshilov@ispras.ru" target="_blank">khoroshilov@ispras.ru</a>>
<br>
<b>Sent:</b> Friday, June 21, 2019 9:16 PM<br>
<b>To:</b> Puneet Gupta <<a href="mailto:PUNEETG@xilinx.com" target="_blank">PUNEETG@xilinx.com</a>>;
<a href="mailto:ldv-project@linuxtesting.org" target="_blank">ldv-project@linuxtesting.org</a><br>
<b>Subject:</b> Re: Queries in running the LDV.<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p><span style="font-size:12.0pt;font-family:"Arial",sans-serif;color:red">EXTERNAL EMAIL</span><o:p></o:p></p>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Dear Puneet,<br>
<br>
It seems you use LDV Tools, but it was superseded by our newer KLEVER Framework [1,2].<br>
So, we suggest to use the newer tool.<br>
<br>
As for memory leak rule, we had a prototype of such rule in LDV Tools (104 [3]), but it was not maintained and it is not available in KLEVER. So, we suggest to check code against some memory safety rules ((KLEVER rule id: "linux:memory safety", please note
 that string operations are not supported yet) or some Linux specific rules like mutex lock [4] or clock_enable/clock_disable [5].<br>
<br>
[1] <a href="http://linuxtesting.org/04-07-2018" target="_blank">http://linuxtesting.org/04-07-2018</a><br>
[2] <a href="https://forge.ispras.ru/projects/klever" target="_blank">https://forge.ispras.ru/projects/klever</a><br>
[3] <a href="https://forge.ispras.ru/issues/2735" target="_blank">https://forge.ispras.ru/issues/2735</a><br>
[4] <a href="https://forge.ispras.ru/issues/1940" target="_blank">https://forge.ispras.ru/issues/1940</a> (KLEVER rule ids: "linux:kernel:locking:mutex")
<br>
[5] <a href="https://forge.ispras.ru/issues/8785" target="_blank">https://forge.ispras.ru/issues/8785</a> (KLEVER rule ids: "linux:drivers:clk1", "linux:drivers:clk2")<br>
<br>
Best regards,<br>
Alexey Khoroshilov<br>
Linux Verification Center, ISPRAS<br>
<br>
<br>
On 21.06.2019 8:30, Puneet Gupta wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Hi,<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">I am using LDV for running static analysis for my external driver.
<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">I have few questions :<o:p></o:p></p>
<ul type="disc">
<li class="gmail-m1627042294443862642msolistparagraph" style="mso-list:l1 level1 lfo2">
The driver has many files to be compiled, but it seems the LDV is only reporting out the errors for the file which is mentioned in ‘obj-m’. How can I get result for all the files?<o:p></o:p></li><li class="gmail-m1627042294443862642msolistparagraph" style="mso-list:l1 level1 lfo2">
What is meant by the error: “attempting to take field offset lock of expression priv@stop whose value is Top”. I am getting only these errors for my file.<o:p></o:p></li><li class="gmail-m1627042294443862642msolistparagraph" style="mso-list:l1 level1 lfo2">
To test the LDV , I did kmalloc and didn’t freed the memory returned. But the output on the webpage is not showing an error for that memory leak. Have I need to pass some separate rule for detecting the memory leaks?<o:p></o:p></li></ul>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">I am using 32_7a rule for running the driver, as given in the example in the LDV standard doc.
<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Thanks,<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Puneet<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">This email and any attachments are intended for the sole use of the named recipient(s) and contain(s) confidential information that may be proprietary, privileged or copyrighted
 under applicable law. If you are not the intended recipient, do not read, copy, or forward this email message or any attachments. Delete this email message and any attachments immediately.
<o:p></o:p></p>
</blockquote>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
</div>
</div>
<p class="MsoNormal">_______________________________________________<br>
ldv-project mailing list<br>
<a href="mailto:ldv-project@linuxtesting.org" target="_blank">ldv-project@linuxtesting.org</a><br>
<a href="http://linuxtesting.org/cgi-bin/mailman/listinfo/ldv-project" target="_blank">http://linuxtesting.org/cgi-bin/mailman/listinfo/ldv-project</a><o:p></o:p></p>
</blockquote>
</div>
</div>
</div>
</body>
</html>