[ldv-project] Version 0.4 of LDV Tools released

Evgeny Novikov novikov at ispras.ru
Tue Oct 22 16:06:10 MSK 2013


After more then 2 years of active development we are happy to announce 
that we released version 0.4 of LDV Tools. This version includes a lot 
of improvements and many bug fixes. In total it consists of about 900 
commits that were made just in the LDV Tools repository 
<http://forge.ispras.ru/projects/ldv/repository> not including 
submodules. The most significant changes are:

    * Improvements in existing rule models: Module get/put
      <http://forge.ispras.ru/issues/3239>, Atomic allocation in
      interrupt context <http://forge.ispras.ru/issues/3317>, Mutex
      lock/unlock <http://forge.ispras.ru/issues/1940>, Memory
      allocation under spinlocks <http://forge.ispras.ru/issues/3232>,
      NOIO allocation under USB lock <http://forge.ispras.ru/issues/3220>.
    * Support of 25 new rule models: Possible TTY NULL dereference
      <http://forge.ispras.ru/issues/2692>, Block requests
      <http://forge.ispras.ru/issues/2706>, Usage of msleep()
      <http://forge.ispras.ru/issues/2732>, USB gadget driver
      (de)registration <http://forge.ispras.ru/issues/2742>,
      Initialization of spinlocks <http://forge.ispras.ru/issues/2747>,
      Integer underflow in calling copy_from_user(), copy_to_user(),
      etc. <http://forge.ispras.ru/issues/2771>, Usage of
      spin_lock_irq*() <http://forge.ispras.ru/issues/3035>, Usage of
      local_irq_*() <http://forge.ispras.ru/issues/3223>, RW locks
      lock/unlock <http://forge.ispras.ru/issues/3193>, probe() return
      values <http://forge.ispras.ru/issues/2606>, Arguments of
      find_next_zero_bit() <http://forge.ispras.ru/issues/3261>,
      Initialization of sysfs attributes
      <http://forge.ispras.ru/issues/3270>, USB reference counting
      <http://forge.ispras.ru/issues/3306>, Double kfree_skb()
      <http://forge.ispras.ru/issues/3311>, Error handling in probe()
      <http://forge.ispras.ru/issues/3313>, usb_deregister() and
      usb_serial_deregister() <http://forge.ispras.ru/issues/3316>,
      netif_napi_add()/netif_napi_del()
      <http://forge.ispras.ru/issues/3327>, napi_enable()/napi_disable()
      <http://forge.ispras.ru/issues/3328>,
      register_netdev()/unregister_netdev(),
      alloc_netdev()/free_netdev() <http://forge.ispras.ru/issues/3338>,
      Usage of mod_timer() <http://forge.ispras.ru/issues/3340>, Usage
      of semaphores <http://forge.ispras.ru/issues/3399>, Work with
      clocks <http://forge.ispras.ru/issues/3608>, RCU read sections
      nesting <http://forge.ispras.ru/issues/3831>, RCU update
      operations inside read sections
      <http://forge.ispras.ru/issues/3832>, Initialization of
      completions <http://forge.ispras.ru/issues/3865>.
    * Fixing patterns for several driver callback structures to generate
      correct environment models.
    * Introducing C Instrumentation Framework
      <http://forge.ispras.ru/projects/cif> - a user-friendly interface
      for Aspectator.
    * Supporting reusable blocks of aspect files and corresponding
      rearranging all existing rule models.
    * Added ability to make source code querying with help of
      Aspectator, which is used in construction of rule models on the
      basis of instrumented source code (see corresponding news
      <http://forge.ispras.ru/news/184>) and in generation of
      environment models.
    * Support of a more user-friendly interface for reachability C
      verifiers.
    * Switch to 2.7.1 <http://forge.ispras.ru/news/126> version of BLAST
      <http://forge.ispras.ru/projects/blast/> - a default verifier of
      LDV Tools.
    * Better integration with CPAchecker
      <http://cpachecker.sosy-lab.org/> verifier that was included as
      submodule
      <http://forge.ispras.ru/projects/ldv/repository/changes/dscv/rcv/backends/cpachecker?rev=master>
      of LDV Tools.
    * Integration with UFO <https://bitbucket.org/arieg/ufo/wiki/Home>
      verifier.
    * Introducing a common format of error traces and improving
      visualization of error traces of different verifiers.
    * Knowledge Base <http://forge.ispras.ru/news/69> support for
      automatic marking unsafe verdicts of verifiers.
    * Support for an automatic validation of LDV Tools and verifiers on
      known bugs in the Linux kernel.
    * Coverage generation for debugging LDV Tools and different analyses
      of CPAchecker verifier.

Validation <http://forge.ispras.ru/projects/ldv/wiki/LDV_Validator> of 
LDV Tools 0.4 with different verifiers on 38 known bugs in the Linux 
kernel showed that:

    * BLAST is able to detect 15 of them.
    * CPAchecker is able to detect 13 of them.

The source code repository may be browsed by v0.4 
<http://forge.ispras.ru/projects/ldv/repository/show?rev=v0.4> tag. To 
get and to install LDV Tools see instructions 
<http://forge.ispras.ru/projects/ldv/wiki/Downloading_and_Building_LDV>.

Source ISP RAS Open-Source Projects <http://forge.ispras.ru/news/261>.

-- 
Best regards, Evgeny Novikov.
Linux Verification Center, ISPRAS
web: http://linuxtesting.org
e-mail: novikov at ispras.ru

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://linuxtesting.org/pipermail/ldv-project/attachments/20131022/72cd7ecd/attachment.html>


More information about the ldv-project mailing list