Commit Graph

33 Commits

Author SHA1 Message Date
David Anderson eaf1fe5876 API: back out long long stuff; not needed 2014-06-09 12:31:50 -07:00
David Anderson f4b2f42ada Merge branch 'master' of ssh://boinc.berkeley.edu/boinc-v2 2014-06-09 12:24:03 -07:00
David Anderson ab67bf2f77 API, Unix (affects wrappers): fix bug that caused zero CPU time reported
On Linux, wrappers measure CPU time using process_tree_cpu_time(),
which scans /proc/*/stat and parses each one.
If a parse fails it would give up and report zero CPU time.

The problem: if a command (i.e. executable filename) contained ")",
the parse for that process would fail, and we'd report zero CPU.

The fix: if a parse fails, ignore that process and keep going.
We assume that BOINC app exectables don't have ")" in their name.
2014-06-09 12:16:27 -07:00
Rom Walton 1a9b1aa18f lib: provide reference to source for future reference. 2014-06-09 11:37:57 -04:00
Rom Walton 1784b9f9f8 lib: bug fix for previous commit 2014-06-09 11:28:32 -04:00
Rom Walton c34ab5b09c lib: /proc/<pid>/stat now uses 64-bit integer types. 2014-06-09 11:11:50 -04:00
David Anderson 3ee288d6d3 client, Linux: print to stderr if can't parse /proc/x/stat 2014-06-05 18:21:24 -07:00
David Anderson 15b21f97d7 client, Unix: remove #ifdef on HAVE_DIRENT_H 2014-05-16 14:58:52 -07:00
David Anderson df1d8e2bde server: store and display gpu_active_frac
- gpu_active_frac is the fraction of time GPU use is allowed
  while the client is running.
  Previously the client reported it but we weren't storing it in the DB.
  We may need it in the future for batch scheduling logic.
- fix a crashing bug in scheduler
- client: minor message tweak
2014-03-06 13:23:52 -08:00
David Anderson 4b5a099f81 scheduler: create host_app_version records in NCI case 2014-02-04 15:58:01 -08:00
David Anderson 84a6f89840 client and API, Unix: code cleanup, no functional change 2013-08-16 12:20:01 -07:00
David Anderson a8485f3d3f Various: Fix some compile warnings; from Gianfranco 2013-07-09 10:34:32 -07:00
David Anderson 0983315cdb use MAXPATHLEN and sizeof() a few places; from Gianfranco 2013-05-22 13:56:48 -07:00
David Anderson eb7e3af7ed - client and wrapper (Linux): when parsing /proc/x/stat entries,
handle command names that contains white space
2013-03-22 10:28:20 +01:00
David Anderson 53782b7de4 - lib: switch include order to the way it was (general to specific).
Should fix MinGW compile


svn path=/trunk/boinc/; revision=26008
2012-08-11 05:47:18 +00:00
David Anderson 405f567c81 - code cleanup: in foo.cpp, include foo.h first
svn path=/trunk/boinc/; revision=25933
2012-08-01 20:04:05 +00:00
David Anderson 32a08d27d9 - C++ code: use MAXPATHLEN for char arrays that hold paths
svn path=/trunk/boinc/; revision=25659
2012-05-09 16:11:50 +00:00
David Anderson 68b3fe6b19 - client: fix crashing bug when there's a cycle in the process graph.
I had fixed this in one place but not another.
- client: don't memset(0,) a PROCINFO; use clear() instead


svn path=/trunk/boinc/; revision=24431
2011-10-19 07:49:23 +00:00
David Anderson e279b59913 - Updates Linux notifications to use current libnotify.
- Fix build problems on Mac OS X using autotools
- Consistently use #if HAVE_X for platform checks,
    rather than #ifdef HAVE_X or #if defined(HAVE_X)
- In Unix build, make lots of compiler checks standard
- Fix some compile warnings

From Matt Arsenault.

Note: there are now lots of compile warnings in clientgui/ on Unix,
    mostly in WxWidgets code


svn path=/trunk/boinc/; revision=24303
2011-09-27 19:45:27 +00:00
David Anderson b16f603a8a - client (and API and manager): change the data structure
used for system process info
    Old: vector of PROCINFO.
        Descendants of a process were found by recursively
        iterating through the vector.
        Operations are O(n)
    New: map of (id, PROCINFO),
        and each PROCINFO has a vector of its children.
        Operations are O(log(n))
    Also combined Mac/Win/Linux variants of code that
    was essentially the same.


svn path=/trunk/boinc/; revision=24117
2011-09-02 17:45:29 +00:00
David Anderson a0fd3445fc - wrapper: improve and bullet-proof the way we kill apps.
Win: enumerate all descendants, and kill them all TerminateProcess().
    Unix:
        send the main process a SIGTERM.
        Check once a sec for existence of descendants.
        if none, done
        If any still exist after 10 sec, kill all descendants
- wrapper fix bug in Win env var stuff
- scheduler: check for VBox version 3.2+ in app_plan()
    

svn path=/trunk/boinc/; revision=23085
2011-02-22 23:11:34 +00:00
Bernd Machenschalk a73bbac1dc lib:
- fixed whitespace error in Makefile.mingw                                                                                                                                                  
        - build and install svn_version.h in Makefile.mingw                                                                                                                                         
        - fixed boinc_win.h for MinGW gcc-4                                                                                                                                                         
        - not sure why client_msgs.h was ever included in procinfo_unix.cpp,                                                                                                                      
          but in current code caused a nasty trail of includes breaking the                                                                                                                         
          Linux build, so removed it

svn path=/trunk/boinc/; revision=22561
2010-10-20 11:28:02 +00:00
David Anderson 1f9454c576 - client (unix): don't count low-priority processes towards
non-BOINC CPU time.
    NOTE: when you nice a process to 19,
    its priority in /proc is 39 (at least on Ubuntu and FC11).
    I can't find where this offset (20) is documented,
    so I just hardwired 39.

    TODO: Mac

svn path=/trunk/boinc/; revision=22424
2010-09-29 20:12:41 +00:00
David Anderson 7a7cf4f5e7 - client, Unix: error checking in reading /proc entries.
Avoid garbage values e.g. of working_set_size
- scheduler: message tweaks

svn path=/trunk/boinc/; revision=21591
2010-05-20 17:50:00 +00:00
David Anderson 2d7fdacba8 - client: don't include graphics apps in non-BOINC CPU time (Unix).
svn path=/trunk/boinc/; revision=21133
2010-04-07 16:04:36 +00:00
David Anderson 143d03e318 - client: in computing non-BOINC CPU time,
exclude any process whose executable includes "boinc", case-insensitive.
    Fix problem with BoincTasks.exe

svn path=/trunk/boinc/; revision=20910
2010-03-15 23:28:23 +00:00
David Anderson 768f3bfe0b - client: include CPU usage of client in BOINC total.
Also include manager if its name includes "boinc"
    (can't figure out another way)

svn path=/trunk/boinc/; revision=20566
2010-02-15 01:00:32 +00:00
David Anderson 10f9e11ee6 - lib: created a new file for declaring "replacements"
for functions like strlcpy() etc.
    config.h is included here rather than in str_util.h


svn path=/trunk/boinc/; revision=18437
2009-06-16 20:54:44 +00:00
Eric J. Korpela 8f3abcc835 - Added checks for net/*.h, arpa/*.h, netinet/*.h and code to figure out
which of those files to include
    - Modified MAC address check to work on some non-Linux unixes.
      (mac_address.cpp)
    - Added suggested change to "already attached to project" checking.
      (ProjectInfoPage.cpp)
    - changed includes of standard c header files to their c++ equivalents
      (i.e. replaced <stdio.h> with <cstdio>) for namespace protection.
    - replaced "using namespace std;" with more explicit "using std::function" in
      several files.
    - Fixed bug in checking whether the os is OS/2 and added conditional OS_OS2
      to the build environment. (boinc_platform.m4,configure.ac)
    - Changed build environment to not use -nostandardlibs unless we are using
      G++ and static linkage is specified. (configure.ac)
    - Added makefiles and package building files for solaris CSW package manager.
    - Fixed bug with attempting to find login name using logname. (configure.ac)
    - Added ifdef HAVE_* protection around some include files commonly found in
      sys.
    - Added support for unified binary for x86_64/i686-pc-solaris.
      (cs_platforms.cpp)
    - generate_host_cpid() now uses MAC address on non-linux unix.
      (hostinfo_network.cpp)
    - Macro BOINC_SET_COMPILE_FLAGS now doesn't check gcc only flags on non-gcc
      compilers. (boinc_set_compile_flags.m4)
    - Library compiles no longer depend upon the library extension or require
      the library to be prefixed with lib.
    - More fixes for fcgi builds.
    - Added declaration of "struct ether_addr" and ether_ntoa().  Have not yet
      implemented ether_ntoa() for machines that don't have it, or where it is
      buggy.  (unix_util.h)
    - Added FCGI::perror() which calls FCGI_perror(). (boinc_fcgi.{h,cpp})
    - Fixed library Makefiles so that all required headers get installed.


svn path=/trunk/boinc/; revision=17388
2009-02-26 00:23:23 +00:00
David Anderson 9dd952302e - client: /proc/N/stat has () around the command name. Remove these.
svn path=/trunk/boinc/; revision=16354
2008-10-29 16:05:26 +00:00
David Anderson f0e0e8f977 - client: add "exclusive app" feature. If you put
<exclusive_app>foo.exe</exclusive_app>
    in your cc_config.xml, BOINC will suspend computing
    whenever foo.exe is running (e.g., a game).

    Eventually we might want to put the interface in preferences
    instead of cc_config.xml

svn path=/trunk/boinc/; revision=16087
2008-09-29 16:47:10 +00:00
David Anderson ab57184a3a - prepare for "don't run while playing game" feature
svn path=/trunk/boinc/; revision=16084
2008-09-29 01:55:58 +00:00
David Anderson 98cfb8d3b0 - rename .C files to .cpp so that Doxygen will work
svn path=/trunk/boinc/; revision=16069
2008-09-26 18:20:24 +00:00