You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
|
1
|
2
(13) |
3
(29) |
|
4
(18) |
5
(12) |
6
(12) |
7
(22) |
8
(9) |
9
(14) |
10
(6) |
|
11
|
12
|
13
(1) |
14
(5) |
15
(11) |
16
(7) |
17
(5) |
|
18
(1) |
19
(8) |
20
(7) |
21
(12) |
22
(5) |
23
(17) |
24
(6) |
|
25
(27) |
26
(17) |
27
(2) |
28
(10) |
29
(3) |
30
(8) |
31
(20) |
|
From: Nicholas N. <nj...@ca...> - 2004-01-30 16:10:49
|
Hi, Valgrind's usage message is too long; we have so many options. For 99% of users, the debugging options aren't of any interest. Would it be reasonable to omit them by default, and only show them if you specified "-h -h" or "-h -v"? Or maybe "--help-debug"? N |
|
From: Nicholas N. <nj...@ca...> - 2004-01-30 07:01:12
|
CVS commit by nethercote: Whoops M +2 -2 articles.html 1.2 --- devel-home/valgrind/articles.html #1.1:1.2 @@ -2,6 +2,6 @@ <?php - $page_title = "Awards"; - $page_heading = "Awards"; + $page_title = "Articles"; + $page_heading = "Articles"; include "header.inc" ?> |
|
From: Nicholas N. <nj...@ca...> - 2004-01-30 04:38:17
|
CVS commit by nethercote:
Added example bug found in xinetd
M +3 -1 users.html 1.20
--- devel-home/valgrind/users.html #1.19:1.20
@@ -86,5 +86,5 @@
<dd>The World's most popular open source database.
(A <a href="http://www.mysql.com/doc/en/Tools_used_to_create_MySQL.html">thank
- you</a> from MySQL)
+ you</a> from MySQL.)
<dt><a href="http://www.teratext.com">Teratext Database System</a>
@@ -203,4 +203,6 @@
<dt><a href="http://www.xinetd.org">Xinetd</a>
<dd>A secure and powerful replacement for inetd, the internet services daemon.
+ (<a href="http://www.securiteam.com/unixfocus/6P00D208UC.html">Example</a>
+ bug found.)
</dl>
|
|
From: Nicholas N. <nj...@ca...> - 2004-01-29 20:37:44
|
CVS commit by nethercote: Split system requirements section up into hardware/operating system. Added some info about needing a relatively beefy machine. M +15 -7 sysreqs.html 1.6 --- devel-home/valgrind/sysreqs.html #1.5:1.6 @@ -5,16 +5,24 @@ ?> -<b>System requirements:</b> you need an x86 machine running Linux kernel -2.4.X, 2.5.X or 2.6.X. and glibc 2.2.X or 2.3.X. That covers the vast -majority of installed systems at present. Ancient systems (glibc-2.1.3, -Red Hat 6.2 for example) might still work with some effort (they once -used to), but don't bet on it. +<h3>Hardware</h3> +You need an x86 machine. Programs running under Valgrind run significantly +slower, and use much more memory -- e.g. more than twice as much as normal +under the Memcheck tool. Therefore, it's best to have a machine that runs your +normal applications very comfortably. +<p> + +<h3>Operating System</h3> +You must be running Linux kernel 2.4.X, 2.5.X or 2.6.X, and glibc 2.2.X or +2.3.X. That covers the vast majority of installed systems at present. Ancient +systems (glibc-2.1.3, Red Hat 6.2 for example) might still work with some +effort (they once used to), but don't bet on it. <p> The 2.0.0 stable release is known to build and run on Red Hats 7.3, 8, 9, SuSE 8.0 and SuSE 8.2. Chances are good that it will build and work for you if you have any non-ancient Linux distribution. - <p> -<b>Limitations:</b> there are some, the most significant of which are: + +<h3>Limitations</h3> +There are some, the most significant of which are: <ul> <li>Incomplete support for SIMD instructions. 2.0.0 has complete |
|
From: Nicholas N. <nj...@ca...> - 2004-01-29 03:05:24
|
CVS commit by nethercote: Added PHP. M +6 -3 users.html 1.13 --- devel-home/valgrind/users.html #1.12:1.13 @@ -113,7 +113,6 @@ <dd>A general-purpose programming language; the duct-tape of the internet. -<dt><a href="http://www.gnu.org/software/ddd/">GNU ddd</a> -<dd>A graphical front-end for GDB, DBX, WDB, Ladebug, JDB, XDB, bashdb, - and the Perl, Python and PHP debuggers. +<dt><a href="http://www.php.org">PHP</a> +<dd>A web-oriented scripting language. <dt><a href="http://pike.ida.liu.se">Pike</a> @@ -121,4 +120,8 @@ simple and fast data manipulation. +<dt><a href="http://www.gnu.org/software/ddd/">GNU ddd</a> +<dd>A graphical front-end for GDB, DBX, WDB, Ladebug, JDB, XDB, bashdb, + and the Perl, Python and PHP debuggers. + <dt><a href="http://www.trolltech.com/products/qt/">Qt by Trolltech</a> <dd>A multi-platform, C++ application development framework. |
|
From: Nicholas N. <nj...@ca...> - 2004-01-29 00:10:46
|
CVS commit by nethercote: Added SportVision. M +3 -0 users.html 1.12 --- devel-home/valgrind/users.html #1.11:1.12 @@ -182,4 +182,7 @@ <h3>Other</h3> <dl> +<dt><a href="http://www.sportvision.com">SportVision</a> +<dd>Various tools for virtual enhancements to live TV sports broadcasts. + <dt><a href="http://www.chipvision.com">ORINOCO</a> <dd>A tool to estimate the power dissipation of hardware/ASIC designs. |
|
From: Nicholas N. <nj...@ca...> - 2004-01-28 21:29:45
|
CVS commit by nethercote: Added dbAppliance, ASPECT, netPanzer, Opie. M +13 -0 users.html 1.10 --- devel-home/valgrind/users.html #1.9:1.10 @@ -64,4 +64,8 @@ <dt><a href="http://www.data-ex-machina.de/natix.html">Natix</a> <dd>A native XML database management system. + +<dt><a href="http://www.teracruz.com/products/dbappliance.aspx">Teracruz + dbAppliance</a> +<dd>Database performance monitoring and acceleration. </dl> @@ -89,4 +93,7 @@ visualization applications. +<dt><a href="http://www.aspect-sdm.org">ASPECT</a> +<dd>A data stream monitoring and visualization tool, for simulation analysis. + <dt><a href="http://teem.sf.net">Teem</a> <dd>A collection of C libraries for manipulating and visualizing @@ -159,4 +166,7 @@ <dd>A World War II first person shooter. +<dt><a href="http://netpanzer.berlios.de">netPanzer</a> +<dd>An online multi-player tactical warfare game. + <dt><a href="http://crystal.sf.net">Crystal Space</a> <dd>A portable 3D game engine. @@ -183,4 +193,7 @@ access from C, C++, Java, Perl, Python. +<dt><a href="http://opie.handhelds.org">Opie</a> +<dd>A graphical user environment for PDA's and other Linux devices. + <dt><a href="http://www.gtk-papaya.org">Papaya</a> <dd>A GTK+-2.0 MUD client for UNIX and Windows. |
|
From: Nicholas N. <nj...@ca...> - 2004-01-28 20:03:52
|
CVS commit by nethercote:
Added Qt, xinetd, OpenSG; corrected ScummVM URL.
M +14 -7 users.html 1.9
--- devel-home/valgrind/users.html #1.8:1.9
@@ -110,4 +110,7 @@
simple and fast data manipulation.
+<dt><a href="http://www.trolltech.com/products/qt/">Qt by Trolltech</a>
+<dd>A multi-platform, C++ application development framework.
+
<dt><a href="http://xmlsoft.org/">libxml2/libxslt</a>
<dd>GNOME's multi-platform XML C parser and toolkit.
@@ -145,4 +148,10 @@
</dl>
+<h3>System</h3>
+<dl>
+<dt><a href="http://www.xinetd.org">Xinetd</a>
+<dd>A secure and powerful replacement for inetd.
+</dl>
+
<h3>Games</h3>
<dl>
@@ -153,14 +162,8 @@
<dd>A portable 3D game engine.
-<dt><a href="http://www.scummvg.org">ScummVM</a>
+<dt><a href="http://www.scummvm.org">ScummVM</a>
<dd>A virtual machine for classic graphical adventure games.
</dl>
-<h3>System</h3>
-<dl>
-<dt><a href="www.xinetd.org">Xinetd</a>
-<dd>A secure and powerful replacement for inetd.
-</dl>
-
<h3>Other</h3>
<dl>
@@ -168,4 +171,8 @@
<dd>A tool to estimate the power dissipation of hardware/ASIC designs.
+<dt><a href="http://www.opensg.org">OpenSG</a>
+<dd>A portable scenegraph system for creating realtime graphics programs, e.g.
+ for virtual reality applications.
+
<dt><a href="http://www.exalead.com">Exalead</a>
<dd>A search and navigation platform, including search engine, XML
|
|
From: Nicholas N. <nj...@ca...> - 2004-01-28 16:47:47
|
CVS commit by nethercote:
Woo! Bagged KDE, KOffice, Mozilla/Firebird/Thunderbird. Also ScummVM, xinetd,
SynCE.
M +36 -9 users.html 1.8
--- devel-home/valgrind/users.html #1.7:1.8
@@ -13,7 +13,13 @@
of bugs found.)
+<dt><a href="http://www.kde.org">KDE</a>
+<dd>Open Source graphical desktop environment for Unix workstations.
+
<dt><a href="http://www.gnome.org">GNOME</a>
<dd>A desktop environment and developer platform for Unix and Linux systems.
+<dt><a href="http://www.koffice.org">KOffice</a>
+<dd>Multi-application, integrated office suite.
+
<dt><a href="http://www.gnumeric.org">Gnumeric</a>
<dd>A replacement for proprietary spreadsheets.
@@ -26,4 +32,13 @@
<h3>Web</h3>
<dl>
+<dt><a href="http://www.mozilla.org">Mozilla</a>
+<dd>Web application suite, for browsing, email, IRC chat and HTML editing.
+
+<dt><a href="http://mozilla.org/products/firebird/">Mozilla Firebird</a>
+<dd>A lean, fast web browser derived from the Mozilla suite.
+
+<dt><a href="http://mozilla.org/products/thunderbird/">Mozilla Thunderbird</a>
+<dd>A powerful email and newsgroup client derived from the Mozilla suite.
+
<dt><a href="http://www.emsoftltd.com/index.php?action=embrowser">Embrowser</a>
<dd>A small extensible web browser for internet appliances.
@@ -51,13 +66,4 @@
</dl>
-<h3>Games</h3>
-<dl>
-<dt><a href="http://global.dice.se/games/battlefield/">Battlefield 1942</a>
-<dd>A World War II first person shooter.
-
-<dt><a href="http://crystal.sf.net">Crystal Space</a>
-<dd>A portable 3D game engine.
-</dl>
-
<h3>Scientific</h3>
<dl>
@@ -139,4 +145,22 @@
</dl>
+<h3>Games</h3>
+<dl>
+<dt><a href="http://global.dice.se/games/battlefield/">Battlefield 1942</a>
+<dd>A World War II first person shooter.
+
+<dt><a href="http://crystal.sf.net">Crystal Space</a>
+<dd>A portable 3D game engine.
+
+<dt><a href="http://www.scummvg.org">ScummVM</a>
+<dd>A virtual machine for classic graphical adventure games.
+</dl>
+
+<h3>System</h3>
+<dl>
+<dt><a href="www.xinetd.org">Xinetd</a>
+<dd>A secure and powerful replacement for inetd.
+</dl>
+
<h3>Other</h3>
<dl>
@@ -157,4 +181,7 @@
<dt><a href="http://www.pldaniels.com/ripmime">ripMIME</a>
<dd>Email decoding engine and library.
+
+<dt><a href="http://synce.sf.net">SynCE</a>
+<dd>WinCE communications layer.
</dl>
|
|
From: Nicholas N. <nj...@ca...> - 2004-01-28 13:50:47
|
CVS commit by nethercote: Added another, moved others around, particular FlightGear and SimGear; the author objected to them being listed as games. M +13 -13 users.html 1.7 --- devel-home/valgrind/users.html #1.6:1.7 @@ -56,11 +56,4 @@ <dd>A World War II first person shooter. -<dt><a href="http://www.flightgear.org">FlightGear</a> -<dd>An open-source, multi-platform, cooperative flight simulator. - -<dt><a href="http://www.simgear.org">SimGear</a> -<dd>Building-block libraries for quickly assembling 3d simulations, games, and - visualization applications. - <dt><a href="http://crystal.sf.net">Crystal Space</a> <dd>A portable 3D game engine. @@ -80,4 +73,14 @@ through high-speed networks or the internet. +<dt><a href="http://www.flowtech.se">SHIPFLOW/Chapman</a> +<dd>Special purpose software for investigating marine vessel hydrodynamics. + +<dt><a href="http://www.flightgear.org">FlightGear</a> +<dd>An open-source, multi-platform, cooperative flight simulator. + +<dt><a href="http://www.simgear.org">SimGear</a> +<dd>Building-block libraries for quickly assembling 3d simulations, games, and + visualization applications. + <dt><a href="http://teem.sf.net">Teem</a> <dd>A collection of C libraries for manipulating and visualizing @@ -104,4 +107,7 @@ <dd>GNOME's multi-platform XML C parser and toolkit. +<dt><a href="http://oprofile.sf.net">OProfile</a> +<dd>A system-wide, kernel- and user-space profiler for Linux. + <dt><a href="http://www.uclibc.org">uClibc</a> <dd>A compact C library for embedded systems. @@ -133,10 +139,4 @@ </dl> -<h3>System</h3> -<dl> -<dt><a href="http://oprofile.sf.net">OProfile</a> -<dd>A system-wide, kernel- and user-space profiler for Linux. -</dl> - <h3>Other</h3> <dl> |
|
From: Nicholas N. <nj...@ca...> - 2004-01-28 13:11:27
|
CVS commit by nethercote:
Two more
M +8 -0 users.html 1.6
--- devel-home/valgrind/users.html #1.5:1.6
@@ -97,4 +97,8 @@
and the Perl, Python and PHP debuggers.
+<dt><a href="http://pike.ida.liu.se">Pike</a>
+<dd>A dynamic programming language with powerful built-in data types allowing
+ simple and fast data manipulation.
+
<dt><a href="http://xmlsoft.org/">libxml2/libxslt</a>
<dd>GNOME's multi-platform XML C parser and toolkit.
@@ -123,4 +127,8 @@
<dt><a href="http://mixxx.sf.net">Mixxx</a>
<dd>Digital DJ software.
+
+<dt><a href="http://www.aido.org">AIDO</a>
+<dd>Home entertainment media system, complete with servers, clients, and
+ protocols, handling any TV-presentable content.
</dl>
|
|
From: Nicholas N. <nj...@ca...> - 2004-01-28 13:00:12
|
CVS commit by nethercote: another user M +3 -0 users.html 1.5 --- devel-home/valgrind/users.html #1.4:1.5 @@ -53,4 +53,7 @@ <h3>Games</h3> <dl> +<dt><a href="http://global.dice.se/games/battlefield/">Battlefield 1942</a> +<dd>A World War II first person shooter. + <dt><a href="http://www.flightgear.org">FlightGear</a> <dd>An open-source, multi-platform, cooperative flight simulator. |
|
From: Nicholas N. <nj...@ca...> - 2004-01-28 12:58:07
|
CVS commit by nethercote: Added another user M +9 -3 users.html 1.4 --- devel-home/valgrind/users.html #1.3:1.4 @@ -24,4 +24,13 @@ </dl> +<h3>Web</h3> +<dl> +<dt><a href="http://www.emsoftltd.com/index.php?action=embrowser">Embrowser</a> +<dd>A small extensible web browser for internet appliances. + +<dt><a href="http://bidwatcher.sf.net">Bidwatcher</a> +<dd>An eBay auction listing tracker. +</dl> + <h3>Databases</h3> <dl> @@ -137,7 +146,4 @@ <dt><a href="http://www.pldaniels.com/ripmime">ripMIME</a> <dd>Email decoding engine and library. - -<dt><a href="http://bidwatcher.sf.net">Bidwatcher</a> -<dd>An eBay auction listing tracker. </dl> |
|
From: Nicholas N. <nj...@ca...> - 2004-01-28 12:54:32
|
CVS commit by nethercote:
Added more projects using Valgrind.
M +26 -0 users.html 1.3
--- devel-home/valgrind/users.html #1.2:1.3
@@ -37,4 +37,7 @@
<dd>A high performance database supporting complex queries over tables
with hundreds of columns and multi-million rows.
+
+<dt><a href="http://www.data-ex-machina.de/natix.html">Natix</a>
+<dd>A native XML database management system.
</dl>
@@ -57,8 +60,16 @@
<dd>Navigation and vision systems.
+<dt><a href="http://atlas.web.cern.ch/Atlas/Welcome.html">Atlas</a>
+<dd>The data acquisition, analysis and simulation software for the Atlas
+ Experiment at CERN's Large Hadron Collider.
+
<dt><a href="http://www.hlrs.de/organization/pds/projects/pacx-mpi/">PACX-MPI</a>
<dd>A library for running parallel application on clusters connected
through high-speed networks or the internet.
+<dt><a href="http://teem.sf.net">Teem</a>
+<dd>A collection of C libraries for manipulating and visualizing
+ structured scientific data.
+
<dt><a href="http://www.harmonyware.com">HarmonyWare</a>
<dd>NURBS-based geometry translator tools.
@@ -74,4 +85,7 @@
and the Perl, Python and PHP debuggers.
+<dt><a href="http://xmlsoft.org/">libxml2/libxslt</a>
+<dd>GNOME's multi-platform XML C parser and toolkit.
+
<dt><a href="http://www.uclibc.org">uClibc</a>
<dd>A compact C library for embedded systems.
@@ -86,4 +100,10 @@
<h3>Audio/Video</h3>
<dl>
+<dt><a href="http://www.vorbis.com">Ogg Vorbis</a>
+<dd>A toolset for the high-quality, MP3-style patent-free audio codec.
+
+<dt><a href="http://www.icecast.org">Icecast</a>
+<dd>A streaming audio server, used for internet radio and similar applications.
+
<dt><a href="http://rosegardenmusic.com">Rosegarden</a>
<dd>A MIDI and audio sequencer and notation editor.
@@ -112,4 +132,10 @@
access from C, C++, Java, Perl, Python.
+<dt><a href="http://www.gtk-papaya.org">Papaya</a>
+<dd>A GTK+-2.0 MUD client for UNIX and Windows.
+
+<dt><a href="http://www.pldaniels.com/ripmime">ripMIME</a>
+<dd>Email decoding engine and library.
+
<dt><a href="http://bidwatcher.sf.net">Bidwatcher</a>
<dd>An eBay auction listing tracker.
|
|
From: Nicholas N. <nj...@ca...> - 2004-01-28 12:49:05
|
CVS commit by nethercote: Mentioned users page in News. M +6 -0 index.html 1.15 --- devel-home/valgrind/index.html #1.14:1.15 @@ -5,4 +5,10 @@ ?> +<center>January 27, 2004: We have a new page listing +<a href="users.html">projects using Valgrind</a>. Please see the bottom of +that page if you want to add your project to the list. +</center> +<p> + <center>January 15, 2004: Valgrind awarded a merit (bronze) <a href="http://opensource.org/OSA/awards.php">Open Source Award</a>. Read the |
|
From: Nicholas N. <nj...@ca...> - 2004-01-28 12:47:25
|
CVS commit by nethercote:
Added a whole bunch of new projects using Valgrind, for which people have
authorised me to mention them.
Also linked to it from the overview page.
M +1 -0 overview.html 1.9
M +93 -4 users.html 1.2
--- devel-home/valgrind/overview.html #1.8:1.9
@@ -65,4 +65,5 @@
vision and rover navigation systems, business intelligence software,
financial/banking software, operating system daemons, etc, etc.
+ See a list of <a href="users.html">projects using Valgrind</a>
<p>
--- devel-home/valgrind/users.html #1.1:1.2
@@ -10,6 +10,16 @@
<dt><a href="http://openoffice.org">OpenOffice.org</a>
<dd>A multi-platform office productivity suite.
-(<a href="http://www.kegel.com/openoffice/valgrindingOOo.html">Examples</a>
-of bugs found.)
+ (<a href="http://www.kegel.com/openoffice/valgrindingOOo.html">Examples</a>
+ of bugs found.)
+
+<dt><a href="http://www.gnome.org">GNOME</a>
+<dd>A desktop environment and developer platform for Unix and Linux systems.
+
+<dt><a href="http://www.gnumeric.org">Gnumeric</a>
+<dd>A replacement for proprietary spreadsheets.
+
+<dt><a href="http://www.gnome.org/projects/evolution/">Evolution</a>
+<dd>Integrated email, calendar, scheduling, contact management and
+ task-list system.
</dl>
@@ -18,6 +28,73 @@
<dt><a href="http://www.mysql.com">MySQL</a>
<dd>The World's most popular open source database.
-(A <a href="http://www.mysql.com/doc/en/Tools_used_to_create_MySQL.html">
-thank you</a> from MySQL)
+ (A <a href="http://www.mysql.com/doc/en/Tools_used_to_create_MySQL.html">thank
+ you</a> from MySQL)
+
+<dt><a href="http://www.teratext.com">Teratext Database System</a>
+<dd>A terabyte-capable text database.
+
+<dt><a href="http://monetdb.cwi.nl">MonetDB</a>
+<dd>A high performance database supporting complex queries over tables
+ with hundreds of columns and multi-million rows.
+</dl>
+
+<h3>Games</h3>
+<dl>
+<dt><a href="http://www.flightgear.org">FlightGear</a>
+<dd>An open-source, multi-platform, cooperative flight simulator.
+
+<dt><a href="http://www.simgear.org">SimGear</a>
+<dd>Building-block libraries for quickly assembling 3d simulations, games, and
+ visualization applications.
+
+<dt><a href="http://crystal.sf.net">Crystal Space</a>
+<dd>A portable 3D game engine.
+</dl>
+
+<h3>Scientific</h3>
+<dl>
+<dt><a href="http://marsrovers.jpl.nasa.gov/home/">NASA Mars Exploration Rover</a>
+<dd>Navigation and vision systems.
+
+<dt><a href="http://www.hlrs.de/organization/pds/projects/pacx-mpi/">PACX-MPI</a>
+<dd>A library for running parallel application on clusters connected
+ through high-speed networks or the internet.
+
+<dt><a href="http://www.harmonyware.com">HarmonyWare</a>
+<dd>NURBS-based geometry translator tools.
+</dl>
+
+<h3>Programming</h3>
+<dl>
+<dt><a href="http://www.perl.org">Perl</a>
+<dd>A general-purpose programming language; the duct-tape of the internet.
+
+<dt><a href="http://www.gnu.org/software/ddd/">GNU ddd</a>
+<dd>A graphical front-end for GDB, DBX, WDB, Ladebug, JDB, XDB, bashdb,
+ and the Perl, Python and PHP debuggers.
+
+<dt><a href="http://www.uclibc.org">uClibc</a>
+<dd>A compact C library for embedded systems.
+
+<dt><a href="http://www.venge.net/monotone/">Monotone</a>
+<dd>A free, distributed version control system.
+
+<dt><a href="http://eboxy.sf.net">eboxy</a>
+<dd>A tool for creating graphical user interfaces for set-top boxes.
+</dl>
+
+<h3>Audio/Video</h3>
+<dl>
+<dt><a href="http://rosegardenmusic.com">Rosegarden</a>
+<dd>A MIDI and audio sequencer and notation editor.
+
+<dt><a href="http://mixxx.sf.net">Mixxx</a>
+<dd>Digital DJ software.
+</dl>
+
+<h3>System</h3>
+<dl>
+<dt><a href="http://oprofile.sf.net">OProfile</a>
+<dd>A system-wide, kernel- and user-space profiler for Linux.
</dl>
@@ -26,6 +103,18 @@
<dt><a href="http://www.chipvision.com">ORINOCO</a>
<dd>A tool to estimate the power dissipation of hardware/ASIC designs.
+
+<dt><a href="http://www.exalead.com">Exalead</a>
+<dd>A search and navigation platform, including search engine, XML
+ processing libraries, and statistical linguistics.
+
+<dt><a href="http://www.xmlBlaster.org">xmlBlaster</a>
+<dd>A publish/subscribe and PtP message oriented middleware with easy
+ access from C, C++, Java, Perl, Python.
+
+<dt><a href="http://bidwatcher.sf.net">Bidwatcher</a>
+<dd>An eBay auction listing tracker.
</dl>
+
Please contact Nick Nethercote (njn25 at cam dot ac dot uk) if you are happy to
have your project added to this list.
|
|
From: Nicholas N. <nj...@ca...> - 2004-01-27 19:21:17
|
Hi, I've just put up a page on the Valgrind website listing projects that use (or have used) Valgrind: valgrind.kde.org/users.html. It's very short at the moment. If you are involved in a public project that uses Valgrind, and you would be happy to have your project on this list, *and* you have sufficient authority to make this decision, could you please send me: - a project name - a software category (eg. database, scientific, game) - a URL - a short (< 25 words) description of the project I will only put up these four pieces of information. I will *not* put up names, or email addresses. I might edit the descriptions for clarity/conciseness. Please send the details to me via email (njn25 at cam dot ac dot uk). To make it easy, I include an empty form below. Also, if you know of any interesting projects using Valgrind, whose developers would be happy to be contacted by me for this purpose, please let me know. Thanks very much. N ---- project name: category : URL : description : |
|
From: Nicholas N. <nj...@ca...> - 2004-01-27 17:24:04
|
CVS commit by nethercote: Linked to interview with Julian about Open Source Award. Added short "Projects using valgrind" page. Will grow soon. A users.html 1.1 M +3 -1 index.html 1.14 M +1 -0 menu.inc 1.8 --- devel-home/valgrind/index.html #1.13:1.14 @@ -6,5 +6,7 @@ <center>January 15, 2004: Valgrind awarded a merit (bronze) -<a href="http://opensource.org/OSA/awards.php">Open Source Award</a>. +<a href="http://opensource.org/OSA/awards.php">Open Source Award</a>. Read the +<a href="http://builder.com.com/5100-6375-5136747.html">interview</a> with +Julian Seward. </center> <p> --- devel-home/valgrind/menu.inc #1.7:1.8 @@ -4,4 +4,5 @@ <dt><a href="overview.html"> Overview</a> <dt><a href="tools.html"> Tools</a> +<dt><a href="users.html"> Users</a> <dt><a href="sysreqs.html"> System Requirements</a> <dt><a href="docs.html"> Documentation</a> |
|
From: Jeremy F. <je...@go...> - 2004-01-26 22:33:15
|
On Mon, 2004-01-26 at 10:28, Dirk Mueller wrote: > Its not as if valgrind would be a package that requires more than 5 minutes to > download, configure, compile and install. > > When you use such a ultra new CPU you're going to get a lot more trouble with > your kernel, your libc and your other runtime environment anyway. I doubt it. The Athlon64 still looks like an 8086 to programs which want it to. If you don't tell the client code that the CPU implements gee-whiz feature X, then the client code is unlikely to want to use it (unless the client code isn't really portable x86 code, but specific to some particular CPU/implementation). > > After all, Valgrind's intent is not to emulate your actual host CPU, but > > the common useful subset of ia32 implementation - which your host CPU > > happens to be one of. > > Is this true? I wonder why we keep adding new instructions then. we could just > claim to not support cpuid and only implement 386 instructions, not any of > the "fancy" stuff newer processors do. Well, until MMX support was added, Valgrind's CPUID unconditionally returned a P54C (pre-MMX Pentium) set of results, without any reference to the host CPU. Most things were happy with that - the exception was the NVIDIA drivers, which simply required SSE until a couple of versions ago. > Look, there were good reasons for implementing SSE: for example because of DRI > drivers that use SSE without checking for it (NVIDIA being a good example). > There was no way to suppress SSE support, and it was often requested since > almost every second computer uses those NVIDIA drivers nowadays. I agree. But only because SSE is very useful to real programs. Certainly nobody implemented it for fun (well, maybe they did). > Oh, how do you know what all possible user-mode programs care about? Is there > some secret source of CPUID wisdom I don't know about yet? Well, there's the various Intel documents on how one should and should not use the various functions in CPUID. And there's looking at the actual feature bits, and seeing what they mean. For all but the user-mode instruction extensions, there's nothing there which is concretely relevant to a user-mode program. Sure, a program could inspect the bits, but unless it's just for its own interest (like x86info), then there's no functional relevance. One could imagine a program doing something special if it sees HT, I guess, but it isn't going to change dramatically (especially since Valgrind itself has more affect on program execution than HT/non-HT). > For the single reason that the old code did not expose any problem in any > existing application that we know of I ask you to consider changing the code > back to a blacklisting behavior. If you don't want to fix the cpuid masking > to be athlon specific,then thats fine, I can do that. > > > Yes, I agree. But that isn't part of the feature bitmasks. > > Really? I wonder why I can read about such processor specific information then > in the documentation of cpuid on sandpile.org. The cache/TLB configuration is returned by CPUID request 2; we're talking about the feature bits returned in %edx and %ecx by request 1 (and request 0x80000001 on AMD CPUs). > > Instruction set changes do affect the emulation. All the others are a > > big "don't care". It's trivial to copy them through. > > Great. Then why did you break the "copy through" bit ? Thats the point I'm > complaining about the whole time ! OK, done - it's just typing. J |
|
From: Robert W. <rj...@du...> - 2004-01-26 22:18:59
|
> Should the FD returned by epoll_create() be recorded for the FD tracking > code? If it creates an FD visible to user code, then yes. |
|
From: Tom H. <th...@cy...> - 2004-01-26 22:15:24
|
In message <Pin...@ye...>
Nicholas Nethercote <nj...@ca...> wrote:
> On Sun, 25 Jan 2004, Jeremy Fitzhardinge wrote:
>
> > I would be inclined to copy the definition into vg_kerneliface.h, and
> > make it all unconditional. If the underlying kernel doesn't support the
> > syscall, then it will fail properly. As much as possible, I'd like to
> > eliminate compile-time dependencies on particular kernel versions.
>
> Done, new patch attached. Anyone think it ok to commit?
Should the FD returned by epoll_create() be recorded for the FD tracking
code?
Tom
--
Tom Hughes (th...@cy...)
Software Engineer, Cyberscience Corporation
http://www.cyberscience.com/
|
|
From: Nicholas N. <nj...@ca...> - 2004-01-26 22:10:45
|
On Mon, 26 Jan 2004, Dirk Mueller wrote: > Oh, how do you know what all possible user-mode programs care about? Is there > some secret source of CPUID wisdom I don't know about yet? Isn't this exciting! Still, I've lost track of all the arguing back and forth, and how Jeremy's latest commit affects things. Can someone explain, briefly, dispassionately, exactly what is happening? Thanks. N |
|
From: Nicholas N. <nj...@ca...> - 2004-01-26 22:02:47
|
On Sun, 25 Jan 2004, Jeremy Fitzhardinge wrote: > > Attached is a my attempt to add epoll support to the CVS HEAD. I'm not > > sure about the use of the "#ifdef KERNEL_2_6" in vg_syscalls.c, however. > > It was my attempt to cope with "struct epoll_event" not being available in > > 2.4 and earlier kernels. > > I would be inclined to copy the definition into vg_kerneliface.h, and > make it all unconditional. If the underlying kernel doesn't support the > syscall, then it will fail properly. As much as possible, I'd like to > eliminate compile-time dependencies on particular kernel versions. Done, new patch attached. Anyone think it ok to commit? N |
|
From: Jeremy F. <je...@go...> - 2004-01-26 21:12:24
|
CVS commit by fitzhardinge:
Rearrange CPUID again. Moved most of the helper logic into C, since
the assember was getting fiddly. It now masks out only the undefined
or unimplemented parts of the feature set bits, so it now passes through
all the non-ISA-related feature bits to clients.
It also leaves the vendor ID string unmolested, so that clients can
extract vendor-specific information like extended brand strings and
cache/TLB configuration info.
It does, however, implement some Valgrind-specific requests at 0xd8000000,
though at present the only functionality is the ValgrindVCPU signature.
M +61 -44 vg_constants.h 1.17
M +23 -56 vg_helpers.S 1.30
M +179 -4 vg_to_ucode.c 1.128
--- valgrind/coregrind/vg_constants.h #1.16:1.17
@@ -95,50 +95,67 @@
#define VG_USERREQ__SIGNAL_RETURNS 0x4001
-/* CPU features */
-#define VG_X86_FEAT_FPU (0*32 + 0)
-#define VG_X86_FEAT_VME (0*32 + 1)
-#define VG_X86_FEAT_DE (0*32 + 2)
-#define VG_X86_FEAT_PSE (0*32 + 3)
-#define VG_X86_FEAT_TSC (0*32 + 4)
-#define VG_X86_FEAT_MSR (0*32 + 5)
-#define VG_X86_FEAT_PAE (0*32 + 6)
-#define VG_X86_FEAT_MCE (0*32 + 7)
-#define VG_X86_FEAT_CX8 (0*32 + 8)
-#define VG_X86_FEAT_APIC (0*32 + 9)
-#define VG_X86_FEAT_SEP (0*32 + 11)
-#define VG_X86_FEAT_MTRR (0*32 + 12)
-#define VG_X86_FEAT_PGE (0*32 + 13)
-#define VG_X86_FEAT_MCA (0*32 + 14)
-#define VG_X86_FEAT_CMOV (0*32 + 15)
-#define VG_X86_FEAT_PAT (0*32 + 16)
-#define VG_X86_FEAT_PSE36 (0*32 + 17)
-#define VG_X86_FEAT_CLFSH (0*32 + 19)
-#define VG_X86_FEAT_DS (0*32 + 21)
-#define VG_X86_FEAT_ACPI (0*32 + 22)
-#define VG_X86_FEAT_MMX (0*32 + 23)
-#define VG_X86_FEAT_FXSR (0*32 + 24)
-#define VG_X86_FEAT_SSE (0*32 + 25)
-#define VG_X86_FEAT_SSE2 (0*32 + 26)
-#define VG_X86_FEAT_SS (0*32 + 27)
-#define VG_X86_FEAT_HT (0*32 + 28)
-#define VG_X86_FEAT_TM (0*32 + 29)
-#define VG_X86_FEAT_PBE (0*32 + 31)
+/*
+ 0 - standard feature flags
+ 1 - Intel extended flags
+ 2 - Valgrind internal flags
+ 3 - AMD-specific flags
+ */
+#define VG_N_FEATURE_WORDS 4
-#define VG_X86_FEAT_EST (1*32 + 7)
-#define VG_X86_FEAT_TM2 (1*32 + 8)
-#define VG_X86_FEAT_CNXTID (1*32 + 10)
+#define VG_X86_FEAT 0
+#define VG_EXT_FEAT 1
+#define VG_INT_FEAT 2
+#define VG_AMD_FEAT 3
+
+/* CPU features (generic) */
+#define VG_X86_FEAT_FPU (VG_X86_FEAT*32 + 0)
+#define VG_X86_FEAT_VME (VG_X86_FEAT*32 + 1)
+#define VG_X86_FEAT_DE (VG_X86_FEAT*32 + 2)
+#define VG_X86_FEAT_PSE (VG_X86_FEAT*32 + 3)
+#define VG_X86_FEAT_TSC (VG_X86_FEAT*32 + 4)
+#define VG_X86_FEAT_MSR (VG_X86_FEAT*32 + 5)
+#define VG_X86_FEAT_PAE (VG_X86_FEAT*32 + 6)
+#define VG_X86_FEAT_MCE (VG_X86_FEAT*32 + 7)
+#define VG_X86_FEAT_CX8 (VG_X86_FEAT*32 + 8)
+#define VG_X86_FEAT_APIC (VG_X86_FEAT*32 + 9)
+#define VG_X86_FEAT_SEP (VG_X86_FEAT*32 + 11)
+#define VG_X86_FEAT_MTRR (VG_X86_FEAT*32 + 12)
+#define VG_X86_FEAT_PGE (VG_X86_FEAT*32 + 13)
+#define VG_X86_FEAT_MCA (VG_X86_FEAT*32 + 14)
+#define VG_X86_FEAT_CMOV (VG_X86_FEAT*32 + 15)
+#define VG_X86_FEAT_PAT (VG_X86_FEAT*32 + 16)
+#define VG_X86_FEAT_PSE36 (VG_X86_FEAT*32 + 17)
+#define VG_X86_FEAT_CLFSH (VG_X86_FEAT*32 + 19)
+#define VG_X86_FEAT_DS (VG_X86_FEAT*32 + 21)
+#define VG_X86_FEAT_ACPI (VG_X86_FEAT*32 + 22)
+#define VG_X86_FEAT_MMX (VG_X86_FEAT*32 + 23)
+#define VG_X86_FEAT_FXSR (VG_X86_FEAT*32 + 24)
+#define VG_X86_FEAT_SSE (VG_X86_FEAT*32 + 25)
+#define VG_X86_FEAT_SSE2 (VG_X86_FEAT*32 + 26)
+#define VG_X86_FEAT_SS (VG_X86_FEAT*32 + 27)
+#define VG_X86_FEAT_HT (VG_X86_FEAT*32 + 28)
+#define VG_X86_FEAT_TM (VG_X86_FEAT*32 + 29)
+#define VG_X86_FEAT_IA64 (VG_X86_FEAT*32 + 30)
+#define VG_X86_FEAT_PBE (VG_X86_FEAT*32 + 31)
+
+/* Intel extended feature word */
+#define VG_X86_FEAT_SSE3 (VG_EXT_FEAT*32 + 0)
+#define VG_X86_FEAT_MON (VG_EXT_FEAT*32 + 3)
+#define VG_X86_FEAT_DSCPL (VG_EXT_FEAT*32 + 4)
+#define VG_X86_FEAT_EST (VG_EXT_FEAT*32 + 7)
+#define VG_X86_FEAT_TM2 (VG_EXT_FEAT*32 + 8)
+#define VG_X86_FEAT_CNXTID (VG_EXT_FEAT*32 + 10)
/* Used internally to mark whether CPUID is even implemented */
-#define VG_X86_FEAT_CPUID (2*32 + 0)
+#define VG_X86_FEAT_CPUID (VG_INT_FEAT*32 + 0)
-/* The set of features we're willing to support for the client */
-#define VG_SUPPORTED_FEATURES \
- ((1 << VG_X86_FEAT_FPU) | \
- (1 << VG_X86_FEAT_TSC) | \
- (1 << VG_X86_FEAT_CMOV) | \
- (1 << VG_X86_FEAT_MMX) | \
- (1 << VG_X86_FEAT_FXSR) | \
- (1 << VG_X86_FEAT_SSE) | \
- (1 << VG_X86_FEAT_SSE2))
+/* AMD special features */
+#define VG_AMD_FEAT_SYSCALL (VG_AMD_FEAT*32 + 11)
+#define VG_AMD_FEAT_NXP (VG_AMD_FEAT*32 + 20)
+#define VG_AMD_FEAT_MMXEXT (VG_AMD_FEAT*32 + 22)
+#define VG_AMD_FEAT_FFXSR (VG_AMD_FEAT*32 + 25)
+#define VG_AMD_FEAT_LONGMODE (VG_AMD_FEAT*32 + 29)
+#define VG_AMD_FEAT_3DNOWEXT (VG_AMD_FEAT*32 + 30)
+#define VG_AMD_FEAT_3DNOW (VG_AMD_FEAT*32 + 31)
/* Various environment variables we pay attention to */
--- valgrind/coregrind/vg_helpers.S #1.29:1.30
@@ -191,74 +191,41 @@
RA <- %esp
- For simulating the cpuid instruction, we will
- issue a "real" cpuid instruction and then mask out
- the bits of the features we do not support currently (3dnow mostly).
- We also claim to not support most CPUID operations.
-
- Dirk Mueller <mu...@kd...>
-
- http://www.sandpile.org/ia32/cpuid.htm
-
- references:
-
- pre-MMX pentium:
-
- <werner> cpuid words (0): 0x1 0x756e6547 0x6c65746e 0x49656e69
- <werner> cpuid words (1): 0x52b 0x0 0x0 0x1bf
+ We save registers and package up the args so we can call a C helper
+ for all this.
*/
.global VG_(helper_CPUID)
VG_(helper_CPUID):
+ pushl %ebp
+ movl %esp,%ebp
pushl %eax
pushl %ebx
pushl %ecx
pushl %edx
- movl 32(%esp), %eax
+ pushl %esi
+ pushl %edi
+ pushf
+
+ lea 2*4(%ebp),%eax /* &edx */
+ pushl %eax
+ addl $4,%eax /* &ecx */
+ pushl %eax
+ addl $4,%eax /* &ebx */
+ pushl %eax
+ addl $4,%eax /* &eax */
+ pushl %eax
+ pushl (%eax) /* eax */
- /* eax==0 - max valid request+processor vendor */
- cmpl $0, %eax
- jne 1f
-
- movl $1, %eax /* only support request 1 */
- movl valgrind_brand+0, %ebx
- movl valgrind_brand+4, %edx
- movl valgrind_brand+8, %ecx
- jmp 99f
-
- /* eax==1 - CPU features and model ID */
-1: cmpl $1, %eax
- jne 2f
-
- cpuid /* get host CPU's capabilities */
-
- movl $0111, %eax
- movl $0, %ebx /* clear APIC id, CLFLUSH size, Brand ID */
- movl $0, %ecx /* clear extended feature bits */
- andl $VG_SUPPORTED_FEATURES, %edx /* mask off feature bits we don't support */
- jmp 99f
-
- /* eax=0x80000000 - extended cpuid functions */
-2: cmpl $0x80000000, %eax
- jne 99f
-
- /* leave eax==0x80000000 - we don't support any other extended operations */
- movl valgrind_brand+0, %ebx /* AMD load the brand string again - */
- movl valgrind_brand+4, %edx /* Intel leaves them "reserved" */
- movl valgrind_brand+8, %ecx
-
-
-99: movl %edx, 20(%esp)
- movl %ecx, 24(%esp)
- movl %ebx, 28(%esp)
- movl %eax, 32(%esp)
+ call VG_(helperc_CPUID)
+ addl $20,%esp
+ popf
+ popl %edi
+ popl %esi
popl %edx
popl %ecx
popl %ebx
popl %eax
+ popl %ebp
ret
-.data
-valgrind_brand:
- .ascii "ValgrindVCPU"
-.text
/* Fetch the FPU status register.
--- valgrind/coregrind/vg_to_ucode.c #1.127:1.128
@@ -51,5 +51,17 @@
/*------------------------------------------------------------*/
-#define VG_N_FEATURE_WORDS 3
+#define VG_CPU_VENDOR_GENERIC 0
+#define VG_CPU_VENDOR_INTEL 1
+#define VG_CPU_VENDOR_AMD 2
+
+static Int cpu_vendor = VG_CPU_VENDOR_GENERIC;
+
+static const struct cpu_vendor {
+ const Char *vendorstr;
+ Int vendorid;
+} cpu_vendors[] = {
+ { "GenuineIntel", VG_CPU_VENDOR_INTEL },
+ { "AuthenticAMD", VG_CPU_VENDOR_AMD },
+};
static Int cpuid_level = -2; /* -2 -> not initialized */
@@ -109,4 +121,7 @@ static inline void cpuid(UInt eax,
static void get_cpu_features(void)
{
+ Char vendorstr[13];
+ Int i;
+
if (!has_cpuid()) {
cpuid_level = -1;
@@ -114,10 +129,27 @@ static void get_cpu_features(void)
}
- cpu_features[2] |= (1 << (VG_X86_FEAT_CPUID%32));
+ cpu_features[VG_INT_FEAT] |= (1 << (VG_X86_FEAT_CPUID%32));
- cpuid_level = cpuid_eax(0);
+ cpuid(0, &cpuid_level, (UInt *)&vendorstr[0], (UInt *)&vendorstr[8], (UInt *)&vendorstr[4]);
+ vendorstr[12] = '\0';
+
+ for(i = 0; i < sizeof(cpu_vendors)/sizeof(*cpu_vendors); i++)
+ if (VG_(memcmp)(vendorstr, cpu_vendors[i].vendorstr, 12) == 0) {
+ cpu_vendor = cpu_vendors[i].vendorid;
+ break;
+ }
if (cpuid_level >= 1)
- cpuid(1, NULL, NULL, &cpu_features[1], &cpu_features[0]);
+ cpuid(1, NULL, NULL, &cpu_features[VG_EXT_FEAT], &cpu_features[VG_X86_FEAT]);
+
+ switch(cpu_vendor) {
+ case VG_CPU_VENDOR_AMD:
+ /* get AMD-specific flags */
+ cpuid(0x80000001, NULL, NULL, NULL, &cpu_features[VG_AMD_FEAT]);
+ break;
+
+ default:
+ break;
+ }
}
@@ -135,4 +167,147 @@ Bool VG_(cpu_has_feature)(UInt feature)
}
+/* The set of features we're willing to support for the client
+
+ This includes supported instruction set extensions, plus any
+ extensions which don't have any user-mode visible effect (but the
+ client may find interesting).
+ */
+#define VG_X86_SUPPORTED_FEATURES \
+ ((1 << VG_X86_FEAT_FPU) | \
+ (1 << VG_X86_FEAT_VME) | \
+ (1 << VG_X86_FEAT_DE) | \
+ (1 << VG_X86_FEAT_PSE) | \
+ (1 << VG_X86_FEAT_TSC) | \
+ (0 << VG_X86_FEAT_MSR) | \
+ (1 << VG_X86_FEAT_PAE) | \
+ (1 << VG_X86_FEAT_MCE) | \
+ (1 << VG_X86_FEAT_CX8) | \
+ (1 << VG_X86_FEAT_APIC) | \
+ (0 << VG_X86_FEAT_SEP) | \
+ (1 << VG_X86_FEAT_MTRR) | \
+ (1 << VG_X86_FEAT_PGE) | \
+ (1 << VG_X86_FEAT_MCA) | \
+ (1 << VG_X86_FEAT_CMOV) | \
+ (1 << VG_X86_FEAT_PAT) | \
+ (1 << VG_X86_FEAT_PSE36) | \
+ (0 << VG_X86_FEAT_CLFSH) | \
+ (1 << VG_X86_FEAT_DS) | \
+ (1 << VG_X86_FEAT_ACPI) | \
+ (1 << VG_X86_FEAT_MMX) | \
+ (1 << VG_X86_FEAT_FXSR) | \
+ (1 << VG_X86_FEAT_SSE) | \
+ (1 << VG_X86_FEAT_SSE2) | \
+ (1 << VG_X86_FEAT_SS) | \
+ (1 << VG_X86_FEAT_HT) | \
+ (1 << VG_X86_FEAT_TM) | \
+ (0 << VG_X86_FEAT_IA64) | \
+ (1 << VG_X86_FEAT_PBE))
+
+#define VG_AMD_SUPPORTED_FEATURES \
+ ((0 << (VG_AMD_FEAT_SYSCALL % 32)) | \
+ (0 << (VG_AMD_FEAT_NXP % 32)) | \
+ (1 << (VG_AMD_FEAT_MMXEXT % 32)) | \
+ (0 << (VG_AMD_FEAT_FFXSR % 32)) | \
+ (0 << (VG_AMD_FEAT_LONGMODE % 32)) | \
+ (0 << (VG_AMD_FEAT_3DNOWEXT % 32)) | \
+ (0 << (VG_AMD_FEAT_3DNOW % 32)) | \
+ /* Common bits between standard features and AMD features */ \
+ (1 << VG_X86_FEAT_FPU) | \
+ (1 << VG_X86_FEAT_VME) | \
+ (1 << VG_X86_FEAT_DE) | \
+ (1 << VG_X86_FEAT_PSE) | \
+ (1 << VG_X86_FEAT_TSC) | \
+ (0 << VG_X86_FEAT_MSR) | \
+ (1 << VG_X86_FEAT_PAE) | \
+ (1 << VG_X86_FEAT_MCE) | \
+ (1 << VG_X86_FEAT_CX8) | \
+ (1 << VG_X86_FEAT_APIC) | \
+ (1 << VG_X86_FEAT_MTRR) | \
+ (1 << VG_X86_FEAT_PGE) | \
+ (1 << VG_X86_FEAT_MCA) | \
+ (1 << VG_X86_FEAT_CMOV) | \
+ (1 << VG_X86_FEAT_PAT) | \
+ (1 << VG_X86_FEAT_PSE36) | \
+ (1 << VG_X86_FEAT_MMX) | \
+ (1 << VG_X86_FEAT_FXSR))
+
+
+/*
+ For simulating the cpuid instruction, we will
+ issue a "real" cpuid instruction and then mask out
+ the bits of the features we do not support currently (3dnow mostly).
+ We also claim to not support most CPUID operations.
+
+ Dirk Mueller <mu...@kd...>
+
+ http://www.sandpile.org/ia32/cpuid.htm
+
+ references:
+
+ pre-MMX pentium:
+
+ <werner> cpuid words (0): 0x1 0x756e6547 0x6c65746e 0x49656e69
+ <werner> cpuid words (1): 0x52b 0x0 0x0 0x1bf
+
+ Updated to be more extensible about future vendor extensions and
+ vendor-specific parts of CPUID.
+*/
+void VG_(helperc_CPUID)(UInt op, UInt *eax_ret, UInt *ebx_ret, UInt *ecx_ret, UInt *edx_ret)
+{
+ UInt eax, ebx, ecx, edx;
+
+ if (cpuid_level == -2)
+ get_cpu_features(); /* for cpu_vendor */
+
+ cpuid(op, &eax, &ebx, &ecx, &edx);
+
+ /* Common mangling */
+ switch(op) {
+ case 1:
+ edx &= VG_X86_SUPPORTED_FEATURES;
+ break;
+
+ case 0xd8000000: {
+ /* Implement some private information at 0xd8000000 */
+ static const Char valgrind_vendor[] = "ValgrindVCPU";
+
+ eax = 0xd8000000; /* max request */
+ ebx = *(UInt *)&valgrind_vendor[0];
+ ecx = *(UInt *)&valgrind_vendor[8];
+ edx = *(UInt *)&valgrind_vendor[4];
+ }
+ break;
+ }
+
+ /* Vendor-specific mangling of the results */
+ switch(cpu_vendor) {
+ case VG_CPU_VENDOR_INTEL:
+ switch(op) {
+ case 1:
+ ecx = 0; /* mask out all extended features for now */
+ break;
+
+ case 0x80000001:
+ ebx = ecx = edx = 0;
+ break;
+ }
+ break;
+
+ case VG_CPU_VENDOR_AMD:
+ switch(op) {
+ case 0x80000001:
+ edx &= VG_AMD_SUPPORTED_FEATURES;
+ break;
+ }
+ break;
+ }
+
+ *eax_ret = eax;
+ *ebx_ret = ebx;
+ *ecx_ret = ecx;
+ *edx_ret = edx;
+}
+
+
/*------------------------------------------------------------*/
/*--- Here so it can be inlined everywhere. ---*/
|
|
From: Dirk M. <dm...@gm...> - 2004-01-26 18:28:57
|
On Monday 26 January 2004 10:40, Jeremy Fitzhardinge wrote: > > emulating has to check before calling cpuid(0x80000001) if it is in fact > > a AMD CPU. If they don't, well, they get undefined behaviour anyway. > No, because other vendors can use 0x80000001 for other purposes. Intel > has this reserved, for example. intel cleans all bits. > Just clearing the bit means you could > be clearing some other feature flag for another vendor. Yes, as I said, one could check first if its an athlon cpu. However, thats not what your patch did. > > Correct. IMHO, we should only expose those which exist at all on the > > original host cpu. So basically we have to blacklist a few extensions > > which we don't support. > But that makes no sense. At any point, one of the currently reserved > bits could come into use, and a piece of software will try to use > instructions which are associated with that bit - requiring an upgrade > to Valgrind to make any progress at all. Its not as if valgrind would be a package that requires more than 5 minutes to download, configure, compile and install. When you use such a ultra new CPU you're going to get a lot more trouble with your kernel, your libc and your other runtime environment anyway. > After all, Valgrind's intent is not to emulate your actual host CPU, but > the common useful subset of ia32 implementation - which your host CPU > happens to be one of. Is this true? I wonder why we keep adding new instructions then. we could just claim to not support cpuid and only implement 386 instructions, not any of the "fancy" stuff newer processors do. Look, there were good reasons for implementing SSE: for example because of DRI drivers that use SSE without checking for it (NVIDIA being a good example). There was no way to suppress SSE support, and it was often requested since almost every second computer uses those NVIDIA drivers nowadays. > > euhm? when does invoking the cpuid instruction change the CPU behavior? > > Got an example for that? > It doesn't, but it does indicate CPU behavioural changes. The only ones > which user-mode programs care about are instruction-set extensions. Oh, how do you know what all possible user-mode programs care about? Is there some secret source of CPUID wisdom I don't know about yet? For the single reason that the old code did not expose any problem in any existing application that we know of I ask you to consider changing the code back to a blacklisting behavior. If you don't want to fix the cpuid masking to be athlon specific,then thats fine, I can do that. > Yes, I agree. But that isn't part of the feature bitmasks. Really? I wonder why I can read about such processor specific information then in the documentation of cpuid on sandpile.org. > Instruction set changes do affect the emulation. All the others are a > big "don't care". It's trivial to copy them through. Great. Then why did you break the "copy through" bit ? Thats the point I'm complaining about the whole time ! Dirk |