Errata
The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".
The following errata were submitted by our customers and approved as valid errors by the author or editor.
Color key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update
Version | Location | Description | Submitted By | Date submitted | Date corrected |
---|---|---|---|---|---|
Printed | Page 5 1st paragraph, 1st full sentence |
Parenthesis after the period has an intervening newline: |
tcordes | Mar 31, 2015 | |
Printed | Page 6 3rd paragraph |
The text reads: Note from the Author or Editor: |
Anonymous | ||
Printed | Page 9 7th line |
messages a hour |
Anonymous | ||
Printed | Page 22 "A brief note" box, 3rd bullet point |
"An payload-free packet" |
tcordes | Mar 31, 2015 | |
Printed | Page 32 middle 1st paragraph, |
It says "It's probably safe to assume that a 5-MIPS CPU will outperform a 100 MIPS |
Anonymous | ||
Printed | Page 38 last text paragraph, 1st sentence |
"illustrated in Table 2-4" |
tcordes | Mar 31, 2015 | |
Printed | Page 41 1st paragraph, 3rd last sentence |
"If automobile performance followed the same growth curve as microprocessors over the last 20 years, the successor to the DeLorean DMC-12 (1981-1983), which had a top speed of perhaps 140 miles per hour, would have doubled 12 times..." |
tcordes | Mar 31, 2015 | |
Printed | Page 52 Figure 3-4 |
Figure description text says "as a function ot L1 cache hit rate", but in-figure legend X-axis says "L2 cache hit rate". Both should be the same level, L1 or L2, I'm guessing. Note from the Author or Editor: |
tcordes | Mar 31, 2015 | |
Printed | Page 56 4 |
The fourth paragraph states that "The next four sections look at different process |
Anonymous | ||
Printed | Page 57 2nd last text paragraph, 3rd sentence |
The value range is wrong: the range is +19 to -20, not +20 to -20. |
tcordes | Mar 31, 2015 | |
Printed | Page 58 first line |
"Let's decrease the priority of this process to -20." Note from the Author or Editor: |
Anonymous | ||
Printed | Page 64 Last line of the table in "Example 3-3. Creating a priority fence in the |
timesharing class"; Note from the Author or Editor: |
Anonymous | ||
Printed | Page 70 2nd paragraph, last sentence |
"There are point-to-point connections between data path and devices connected to it" Note from the Author or Editor: |
tcordes | Mar 31, 2015 | |
Printed | Page 73 3rd and 4th paragraph |
Paragraph 4 does not follow from paragraph 3, it's a non sequitur. Paragraph 3 explains nothing more than the "problem" caused by cache coherency requirements causing a lot of bus traffic. Then paragraph 4 immediately states that larger caches are better, with no explanation as to how that fits into the previous point about cache coherency. If anything, paragraph 3 implies the opposite of paragraph 4: that is, that larger caches would cause a performance decrease due to coherency issues. Perhaps this small section would work much better if paragraph 4 were just deleted; otherwise one must explain why larger caches are better: even in the face of coherency-induced bus traffic and concomitant cache line invalidations. Note from the Author or Editor: |
tcordes | Apr 01, 2015 | |
Printed | Page 84 middle of page, 3rd bullet point |
"spins on mutexes; (in practical ... the first try)." |
tcordes | Apr 04, 2015 | |
Printed | Page 99 Footnote |
Sun Ultra Enterprise systems don't appear to be able to run with six-way interleaves. Note from the Author or Editor: |
Anonymous | ||
Printed | Page 100 2nd paragraph, last sentence |
"The virtual memory system is responsible for managing the associations between the used portions of this virtual address space into physical memory". |
tcordes | Apr 04, 2015 | |
Printed | Page 105 1st bullet point after 1st paragraph |
"Increasing this value causes the page scanner to run less unnecessary jobs, but do more work." Note from the Author or Editor: |
tcordes | Apr 04, 2015 | |
Page 107 table 4-1, entries for lotsfree, desfree, freepages.low |
Two related problems: Note from the Author or Editor: |
tcordes | Apr 09, 2015 | ||
Printed | Page 108 Last paragraph on the page |
The author indicates that TLB stands for 'transaction lookaside buffer', however, as |
Anonymous | ||
Printed | Page 110 top sentence: tyPing a command |
Anonymous | |||
Printed | Page 111 Paragraph 6 |
The command output lists the following: |
Anonymous | ||
Page 112 1st paragraph, last sentence |
"This minimizes the seek time to the disk" Note from the Author or Editor: |
tcordes | Apr 09, 2015 | ||
Page 114 1st paragraph, last sentence |
"Data ... is periodically written to data by fsflush..." |
tcordes | Apr 09, 2015 | ||
Printed | Page 115 1st code example, 3rd-last line (and 2 last lines) |
Three problems: Note from the Author or Editor: |
tcordes | Apr 09, 2015 | |
Printed | Page 115 last code example, line 2 and last line |
Newlines have been inserted (probably an automated book formatting problem) on these lines in the middle of variable tokens: Note from the Author or Editor: |
tcordes | Apr 09, 2015 | |
Page 123 table 4-3, last entry |
"freeswap" is in a bold and proportional font, unlike all the other text in the same column. |
tcordes | Apr 09, 2015 | ||
Printed | Page 126 1st perl code example |
Same problem as with the perl code errata note I made for page 115. The \n\r should be just \n. Same argument applies. Note from the Author or Editor: |
tcordes | Apr 09, 2015 | |
Page 129 last paragraph, sentences 2 and 3 |
Sentence 3 is saying the exact same thing as sentence 2, but with better wording. Sentence 2 is a bit confusing, the semicolon implies you will describe why they may not be sequential, but after the semicolon you describe why they are. It never is explained why they may not be. If you put a "but" right after the semicolon it may make be clearer. Or delete all of sentence 2 and leave just sentence 3. Or get rid of the text after the semicolon and use that space to explain why they might not be sequential. Note from the Author or Editor: |
tcordes | Apr 09, 2015 | ||
Page 132 bullet point 2 after 3rd paragraph |
9,100 million bytes is 8.475GB in base-2, not 8.67GB as printed. (It is 8678MB, so one extra base-2 math step was missed. That means the "lost-to-the-marketing-math" effect is even worse than you show!) |
tcordes | Apr 09, 2015 | ||
Page 136 1st bullet point after 3rd paragraph |
"and the requesting data is in the drive's buffer" |
tcordes | Apr 09, 2015 | ||
Printed | Page 137 table 5-2, 3rd-last line of table on this page |
Blank line in columns 2+ for no reason, between the line for mode 0 and mode 1 (DMA multi-word). That doesn't match other "Type" sections in the same table. It seems an artifact of the extra spacing required in the "DMA single-word" section. Instead, the 1 in the mode column should be immediately to the right of the "(multi-word)" text in the type column, on the same line. |
tcordes | Apr 09, 2015 | |
Printed | Page 138 table 5-2 (continued), the lines for modes 2,4 and 5 |
Spurious table line wrapping/newlines before the "UDMA/XX" qualifier. Almost certainly the UDMA/XX text was meant to be to the right of the "ATA-X" text, on the same line, and was accidentally wrapped. If it was meant to / had to be wrapped, then it should be wrapped into the "Supported in" column, like was done in the "DMA (single-word) section in the same table, previous page. As it stands, it makes it appear that "UDMA/33" is matched with Mode 3, which is incorrect (and so forth for UDMA/66 and /100). Note from the Author or Editor: |
tcordes | Apr 09, 2015 | |
Page 138 text between table 5-2 and 5-3 |
"provides a summary of the IDE implementations and the features it supports." |
tcordes | Apr 09, 2015 | ||
Printed | Page 143 1st paragraph, 3rd sentence |
"target" should be "device" or "initiator". Targets don't initiate requests in the SCSI spec, or, more precisely, the initiator of a request is always called the initiator, not the target. Note from the Author or Editor: |
tcordes | Apr 09, 2015 | |
Page 144 1st paragraph, 1st sentence |
"... the negotiated synchronous transfer speed to the device was configured as target 0; attached to this controller, it is 0x00002710 KB/second." |
tcordes | Apr 09, 2015 | ||
Printed | Page 148 table 5-4, body, line 2 |
"fibre" is not capitalized. All the other type names in the table are (and "fibre" is certainly its own type as there is no such thing as "Copper fibre"). |
tcordes | Apr 09, 2015 | |
Page 152 5th paragraph, last line |
"the sevice times" -> "the service times" |
tcordes | Apr 09, 2015 | ||
Printed | Page 154 3rd paragraph, 3rd paragraph |
"a sequential reads the extent, then all of the data." |
tcordes | Apr 09, 2015 | |
Page 154 last paragraph, 1st sentence |
"...are stored, etc.) Systems V systems..." |
tcordes | Apr 09, 2015 | ||
Printed | Page 155 1st (partial) paragraph |
"underlying filesystem time" -> "underlying filesystem type" |
tcordes | Apr 09, 2015 | |
Printed | Page 156 2nd paragraph |
The equation for the size of the DNLC on p. 56 has two problems. Note from the Author or Editor: |
Anonymous | ||
Printed | Page 156 1st paragraph, 1st (partial) and 2nd sentence |
From sentence 1 (along with paragraph 5 sentence 1), it sounds like the DNLC operates at the vnode level. But sentence 2 says "the DNLC figures out the right inode from the filename given". Is that technically valid, and if so, could some explanation be added as to the interplay between inode/vnode in the DNLC? If it is simply a typo, change the text from "inode" to "vnode". Note from the Author or Editor: |
tcordes | Apr 09, 2015 | |
Printed | Page 157 table 5-7 |
The table body shows the inode density in bytes (i.e., 2,048) but the header says it's in KB. The text above the table makes it clear 2KB is the correct for the smallest fs size (i.e., a "2" in the 2nd column). Note from the Author or Editor: |
tcordes | Apr 09, 2015 | |
Printed | Page 165 4th paragraph |
states "the ext3 filesystem has writes scheduled every 5 seconds as opposed to the |
Anonymous | ||
Printed | Page 176 2nd footnote |
"on the disk with ID 5 (d5)" |
tcordes | Apr 09, 2015 | |
Printed | Page 179 1st paragraph, 1st full sentence |
"given by read/s, write/s, ..." Note from the Author or Editor: |
tcordes | Apr 09, 2015 | |
Printed | Page 179 4th paragraph, 1st sentence |
"... enabling the facility in production kernels wasn't generally done because it provided only a small performance overhead. IBM decided to leave the kernel tracing facility enabled..." Note from the Author or Editor: |
tcordes | Apr 09, 2015 | |
Printed | Page 181 2nd paragraph |
First sentence: "from binary to hexadecimal." should read "from decimal to Note from the Author or Editor: |
Anonymous | ||
Printed | Page 181 2nd paragraph, 1st sentence |
In addition to the prior errata regarding changing "binary" to "decimal", this entire sentence seems out of place. At that point we are still discussing Example 5-3, not Table 5-11. Example 5-3 has the flags field in decimal, so no such note is required. Note from the Author or Editor: |
tcordes | Apr 09, 2015 | |
Printed | Page 182 table 5-12, last line |
26.102 should be 26.101, to match example 5-3 from which it is taken. In the text paragraph below the table, the 9.074ms result is correct, as it is based on 26.101, not 26.102. |
tcordes | Apr 10, 2015 | |
Printed | Page 188 1st full paragaph (excluding the aside), 2nd sentence |
Very awkward wording: |
tcordes | Apr 22, 2015 | |
Printed | Page 188 "paw prints" paragraph at top of page, 3rd sentence |
For RAID 0 it says "each disk's utilization decreases by about 1/N". I'm confused on this point. It's also made on page 190 2nd-last paragraph, last sentence, about RAID 1: "disk utilization for an N-way mirror is reduced by 1/N." In both cases it is referring to random access (reads+writes for RAID 0 but reads-only for RAID 1). Note from the Author or Editor: |
tcordes | Apr 22, 2015 | |
Printed | Page 193 2nd paragraph, last sentence |
First, the end of the sentence should read "two data disks", not "disk". Note from the Author or Editor: |
tcordes | Apr 22, 2015 | |
Page 193 bullet point at end of page, last sentence and equation |
First, the words "single stripe" are a bit confusing/ambiguous. If my reading of it is correct, perhaps the words "RAID 0 stripe" would be clearer. Note from the Author or Editor: |
tcordes | Apr 22, 2015 | ||
Page 194 2nd-last paragraph, 2nd-last sentence |
I can't see how "2 (n-1)/n reads" is arrived at for degraded reads of "a single disk", nor the "n reads" for non-degraded reads. As per earlier in the paragraph, wouldn't a non-degraded single disk read (i.e., a tiny read that doesn't span disks in the stripe) be just 1 read? And degraded would be simply n-1? As it stands, the former equation gives 1.33 "reads" for n=3, which doesn't even make sense (must be a whole number?). Note from the Author or Editor: |
tcordes | Apr 22, 2015 | ||
Printed | Page 195 Figure 6-4, 6-5 and 6-6 |
The pictures in the figures do not match their title below. Figure 6-4's picture is not RAID 1+0, but RAID 0+1, etc. I do believe that if you simply toggle each of the 3 pictures to the opposite picture, without making any other changes, then everything makes sense (including references in the text paragraphs). Note from the Author or Editor: |
tcordes | Apr 22, 2015 | |
Printed | Page 205 last paragraph, 2nd sentence |
"which is not good if you intended to boot from disk." |
tcordes | Apr 22, 2015 | |
Printed | Page 206 Table 6-5, RAID 5 entry |
"is written from a RAID 4 array", the array type should be 5, not 4. |
tcordes | Apr 22, 2015 | |
Printed | Page 211 4th paragraph, 2nd sentence |
"RAID-5" is used here, but everywhere else in the book RAID levels are referenced without the dash, like "RAID 5". For consistency, this instance should be also. |
tcordes | Apr 22, 2015 | |
Printed | Page 215 1st paragraph, 4th setence |
"This set of rules is called a media access control, or MAC." |
tcordes | Apr 22, 2015 | |
Page 219 last paragraph, 1st sentence |
"This type of propagation..." Note from the Author or Editor: |
tcordes | Apr 22, 2015 | ||
Printed | Page 230 2nd-last text paragraph, 1st sentence |
The text says "show port card/number" but the command example below says "show port status 2/6". The text should include the word "status" to match the example. That would make it consistent with the text and example of "set port speed card/number" in the subsequent paragraph. |
tcordes | Apr 22, 2015 | |
Printed | Page 231 First command example at top of page |
The command says port "4/3" but the sample output says port "2/1", they should both be "4/3" like the example immediately prior on the previous page. |
tcordes | Apr 22, 2015 | |
Printed | Page 231 2nd command example, 2nd line |
The "interface interface" line is confusing as both words are in the same typeface. This is a bit against convention used in the rest of the book, where you normally use a sample interface name. As per the book conventions as outlined on page xii, that typeface should only be used for "commands typed verbatim". A similar problem exists for the speed and duplex lines but in this case it is a bit clearer since most readers understand | to mean "or". Note from the Author or Editor: |
tcordes | Apr 22, 2015 | |
Printed | Page 243 4rd paragraph |
the book reads: |
Anonymous | ||
Printed | Page 245 2nd-last paragraph, 5th sentence |
"If there is an insufficient amount of data, the application will be put to sleep." Note from the Author or Editor: |
tcordes | Apr 22, 2015 | |
Printed | Page 248 last paragraph, 2nd sentence |
"until the RST segment is set" Note from the Author or Editor: |
tcordes | Apr 22, 2015 | |
Printed | Page 256 3rd paragraph, 2nd sentence |
"the uplink from the switch from the server": one of those "from"'s should be a "to". |
tcordes | Apr 22, 2015 | |
Printed | Page 257 2nd paragraph |
"the nfs:nfsv3_nra_kernel parameter to 6" should read: |
Anonymous | ||
Printed | Page 265 1st paragraph |
In the paragraph titled "The maxusers parameter" this formula is given: 7 x maxusers |
Anonymous | ||
Printed | Page 271 1st paragraph, 1st sentence |
"changing an multi-threaded application's" |
tcordes | Apr 22, 2015 | |
Printed | Page 271 point 1 near bottom of page |
"where we first starting comparing" |
tcordes | Apr 22, 2015 | |
Printed | Page 272 last paragraph, 1st sentence |
"Repeat until either conditions 2 or 3 are true": |
tcordes | Apr 22, 2015 | |
Printed | Page 273 Table 8-1, steps 4, 5, 6 and 9 |
Step 4: the rule applied is 1, not 2. |
tcordes | Apr 22, 2015 | |
Printed | Page 273 equation between 1st and 2nd text paragraphs |
The LHS English-language version of the equation doesn't match the RHS (i.e., no multiplication on the LHS). |
tcordes | Apr 22, 2015 | |
Printed | Page 276 2nd paragraph, 1st sentence |
"for analyzing an applications' performance": either the singular "an" should be eliminated to match plural-possessive "applications'", or "applications'" should be changed to "application's" (singular). |
tcordes | Apr 22, 2015 | |
Printed | Page 291 IN PRINT: Section titled Arithmetic, 8th line |
"It is by far the most common arithmatic optimization." |
Anonymous | ||
Printed | Page 291 3rd paragraph |
Java Performance Tuning is written by Jack Shirazi and not by Jack Shiraz. |
Anonymous | ||
Printed | Page 292 Section titled Loops, tuned algorithm |
The tuned algorithm is shown as: Note from the Author or Editor: |
Anonymous | ||
Printed | Page 308 3rd-last paragraph, 2nd-last sentence |
"Linux web servers" should be "Linux NFS servers" as this is the NFS subsection, web servers haven't been discussed yet, and if it's not "Linux NFS servers" that would mean Linux NFS servers were never mentioned in the whole book (and thus inconsistent with the other subsections in "Instant Tuning"). |
tcordes | Apr 22, 2015 |