System Performance Tuning, 2nd edition by Gian-Paolo D. Musumeci, Mike Loukides The unconfirmed error reports are from readers. They have not yet been approved or disproved by the author or editor and represent solely the opinion of the reader. Here's a key to the markup: [page-number]: serious technical mistake {page-number}: minor technical mistake : important language/formatting problem (page-number): language change or minor formatting problem ?page-number?: reader question or request for clarification This page was updated June 18, 2004. UNCONFIRMED errors and comments from readers: [6] 3rd paragraph; The text reads: "... we are limited to 64 (2^8) addresses in memory." It should be 256 instead of 64, as 2^8 = 256. And some lines below: "... is about 16 petabytes (16777216 GB)" 2^64 bytes = 16 exabytes = 16384 petabytes = 16777216 terabytes (56) 4; The fourth paragraph states that "The next four sections look at different process scheduling models". However, there are only two sections covering process scheduling models ("The System V Model: The Linux Model"; and "Multilayered Scheduling Classes: The Solaris Model") before getting into "Multiprocessing". [58] first line; "Let's decrease the priority of this process to -20." Negative "niceness" INCREASES the priority of the process. Also, the output doesn't match the command: "renice -20 5620 5620: old priority 0, new priority 20" should be: "renice 20 5620 5620: old priority 0, new priority 20" or "renice -20 5620 5620: old priority 0, new priority -20" Finally, why is the niceness "19" after attempting to change it to "-20"? [64] Last line of the table in "Example 3-3. Creating a priority fence in the timesharing class"; To truly "fence in" a process at priority 59, shouldn't the value of ts_tqexp for priority 59 be 59? In the example, the value of priority 59's ts_tqexp is 49 and, therefore, when a process at priority 59 uses its entire time quantum it will then be assigned priority 49 and will never migrate to priority 59 again. {99} Footnote; Sun Ultra Enterprise systems don't appear to be able to run with six-way interleaves. (110) top sentence: tyPing a command [156] 2nd paragraph; The equation for the size of the DNLC on p. 56 has two problems. First, the "equation" given is incomplete (missing a "(" ). Second, it is stated to be the "default size" but doesn't match the default given in Table 2-1. Table 2-1 (p. 28) ncsize (size of DNLC) = 4 x (max_nprocs + maxusers) + 320 p. 56: default size [of the DNLC] for a given system is determined by maxusers x 17) + 90 {181} 2nd paragraph; First sentence: "from binary to hexadecimal." should read "from decimal to hexadecimal" For example 524569 decimal is 80119 hex. {292} Section titled Loops, tuned algorithm; The tuned algorithm is shown as: for (i =0; i<= 1024; i++) { x = x * a[i] * b[i]; y = y * a[j] * b[j]; } Obviously j is not incremented. Should it be like: for (i =0; i <= 1024; i++) { z = a[i] * b[i]; x = x * z; y = y * z; }