Bedrock Computer Technologies, LLC v. Softlayer Technologies, Inc. et al

Filing 842

Opposed MOTION for Attorney Fees Yahoo!'s Motion to Declare this an Exceptional Case and for Attorneys' Fees and Costs Pursuant to 35 USC Sec. 285 by Yahoo! Inc.. (Attachments: #1 Affidavit B. James Decl., #2 Exhibit 1, #3 Exhibit 2, #4 Exhibit 3, #5 Exhibit 4, #6 Exhibit 5, #7 Exhibit 6, #8 Exhibit 7, #9 Exhibit 8, #10 Exhibit 9, #11 Exhibit 10, #12 Exhibit 11, #13 Exhibit 12, #14 Exhibit 13, #15 Exhibit 14, #16 Exhibit 15, #17 Exhibit 16, #18 Exhibit 17, #19 Exhibit 18, #20 Exhibit 19, #21 Exhibit 20, #22 Exhibit 21, #23 Exhibit 22, #24 Exhibit 23, #25 Exhibit 24, #26 Exhibit 25)(Chaikovsky, Yar) (Additional attachment(s) added on 6/7/2011: #27 Text of Proposed Order) (mll, ).

Download PDF
EXHIBIT 14 Page 1 1 IN THE UNITED STATES DISTRICT COURT FOR THE EASTERN DISTRICT OF TEXAS TYLER DIVISION 2 3 4 BEDROCK COMPUTER TECHNOLOGIES LLC ) DOCKET NO. 6:09cv269 5 -vs- ) 6 YAHOO!, INC. 7 8 9 ) Tyler, Texas 8:50 a.m. April 29, 2011 TRANSCRIPT OF TRIAL MORNING SESSION BEFORE THE HONORABLE LEONARD DAVIS, UNITED STATES DISTRICT JUDGE 10 11 12 A P P E A R A N C E S FOR THE PLAINTIFF: 13 14 15 16 17 18 19 20 21 MR. DOUGLAS A. CAWLEY MR. THEODORE STEVENSON, III MR. SCOTT W. HEJNY MR. JASON D. CASSADY McKOOL SMITH 300 Crescent Court, Ste. 500 Dallas, TX 75201 MR. ROBERT M. PARKER MR. ROBERT CHRISTOPHER BUNT PARKER, BUNT & AINSWORTH 100 E. Ferguson, Ste. 1114 Tyler, TX 75702 COURT REPORTERS: 22 23 24 25 MS. JUDY WERLINGER MS. SHEA SLOAN Proceedings taken by Machine Stenotype; transcript was produced by a Computer. 6640e328-b5ee-4d66-89ae-bcd019768030 Page 14 1 ANSWER: 2 QUESTION: Yes. And, again, you said that when 3 you sent e-mails to Mr. Absher, you had no reason to be 4 dishonest; isn't that true? 5 ANSWER: 6 QUESTION: No. Absolutely. Now, isn't it true, in that 7 paragraph, sir, you wrote to Mr. Absher stating: 8 analysis showed that the code written by me does not 9 actually collide with the aforementioned patent. 10 ANSWER: 12 QUESTION: My code uses quite different techniques? 11 My Yes. And isn't it also true, sir, 13 that the current Linux kernel actually contains logic, 14 which could be considered infringing the patent? 15 ANSWER: 16 QUESTION: Yes. Okay. And isn't it also true 17 that you could not find any references describing the 18 idea in the patent before 1999? No. Isn't that true, sir? 19 ANSWER: It was a mistake. 20 Actually, I found a lot of references 21 dated back to 1985 about this technique. 22 have any references at that point. 23 QUESTION: I just didn't Well, sir, in the e-mail 24 that's Exhibit 8, you've already said that you were 25 truthful when you wrote this e-mail, right? 6640e328-b5ee-4d66-89ae-bcd019768030 Page 15 1 2 ANSWER: lie. Yes, I was truthful. I just didn't have the information. 3 QUESTION: I understand. I didn't I got it -But in this 4 e-mail, didn't you write: 5 references describing the idea before 1999? 6 ANSWER: I could not find any I found them quickly after that. 7 To December 15, I have already investigated the case and 8 find all the papers, found who -- I didn't find actually 9 who invented this technique, but I found investigations 10 of analysis of technique dated ten years before that, at 11 least 1985. 12 QUESTION: Okay. Well, sir, my question 13 is, in this e-mail, isn't it true that you wrote: 14 could not find any references describing the idea before 15 1999? 16 ANSWER: No. It is not true. I I was 17 truthful when I wrote it, but I just didn't have that 18 information. 19 So this sentence is not true. I am truthful, but -- I am truthful, but 20 statement is not true. 21 is not true. 22 that time when I wrote this. 23 I didn't lie, but the statement I just didn't know that it wasn't true at QUESTION: Now, Mr. Kuznetsov, isn't it 24 true, sir, that the Defendant's position can be 25 difficult to defend, and you believe that they should 6640e328-b5ee-4d66-89ae-bcd019768030 Page 16 1 seek an expert in loopholes of patent rules? 2 ANSWER: 3 Yes. QUESTION: Yes, I wrote that as well. Is it a true statement, sir, 4 that the Defendant's position can be difficult to 5 defend, and you believe they should seek an expert in 6 loopholes of patent rules? 7 ANSWER: No. It was a wrong statement. 8 I thought that it's true when I wrote this. 9 remembered that this code is actually inherited from my 10 code of 1995, I returned my opinion to the opinion which 11 I had a year ago. 12 But after I It is not true. QUESTION: Yes or no, Mr. Kuznetsov, did 13 you say you should seek an expert in loopholes of patent 14 rules? 15 ANSWER: Yes. 16 QUESTION: 17 ANSWER: 18 (End of video clip.) 19 THE COURT: 20 Who will be your next witness? 21 MR. CAWLEY: Okay. This is not true. All right. Thank you. Your Honor, at this time, we 22 would call to the stand Mr. David Filo. 23 THE COURT: 24 MR. CAWLEY: 25 THE COURT: All right, Mr. Filo. May I proceed, Your Honor? Yes, you may. 6640e328-b5ee-4d66-89ae-bcd019768030 Page 128 1 behind. 2 the patent? 3 Q. 4 It's not -- is not this enough to invalidate Exactly. And we will hear the rest of his deposition this afternoon, correct? 5 A. That's my understanding. 6 Q. And have you had an opportunity to look at 7 the -- I think Mr. Cawley asked you and you said you had 8 had an opportunity now to look at the -- what we call 9 the old prior art Linux code or the Kuznetsov code or 10 the '95 code? 11 A. Yes, ma'am. 12 Q. And do you have a copy in front of you, sir? 13 A. I do. 14 Q. And what language is this code written in? 15 A. This is written in C. 16 Q. And do you read and program in C? 17 A. Yes, ma'am. 18 19 MS. DOAN: starts around Page 132, I think, is where the lines are. 20 21 We're on Exhibit 48, and it Q. (By Ms. Doan) And have you reviewed this old prior art '95 Linux code? 22 A. Yes, ma'am, I have. 23 Q. And what version are you looking at, please, 24 25 sir? Is it 2.0.1? A. I'm looking at -- yes, 2. -- well, sorry. 6640e328-b5ee-4d66-89ae-bcd019768030 Page 129 1 This is Linux 2.0.1, that's correct. 2 Q. Okay. And you understand that there's three 3 different versions that we're all talking about, all 4 basically have the same type of code in it, correct? 5 A. Yes, ma'am. 6 Q. Right. 7 A. The old Linux code, yes. 8 Q. Okay. 9 10 Well, three versions? Sorry. Of the old Linux code? And does Exhibit No. 48, the old Linux code, have on-the-fly garbage collection with a hashing table and external chaining? 11 A. Yes, ma'am. 12 Q. And can you tell us where that is in the prior A. Sure. 13 art? 14 15 same thing you have, but let me try. 16 17 So -- I'm not sure I have exactly the If you could go to Line -- let's start at Line 1446. 18 That's not it. I'm going to need -- I 19 don't -- this is a different -- try 1365. 20 different printouts here. I have two Sorry. 21 Q. Okay. 22 A. Yes, that's correct. 23 Q. Okay. 24 25 That's fine. 1365? Does that match the version we're talking about? A. Yes, that matches what I have here. 6640e328-b5ee-4d66-89ae-bcd019768030 Page 130 1 Q. Exhibit 48? Okay. 2 A. Yes. 3 Q. And tell us what where -- where in the code, 4 in the 1995 Alexey Kuznetsov code, it has on-the-fly 5 garbage collection with external chaining and a linked 6 list. 7 A. Okay. Well, this is -- if we could go back 8 previously to the code -- but this is a hash -- this is 9 within a hash table. And Line 1365 represents the 10 beginning of walking the linked list within the hash 11 table. 12 I think you've seen this structure before, 13 where you have a while loop, and that represents -- you 14 know, this while loop that starts on Line 1365 and ends 15 on Line 1383, that is the code that represents walking 16 the linked list. 17 this before in some other examples. 18 And, again, I think we've looked at And the idea is you start with the first 19 record and you iterate through. 20 through the list here, if you look at Line 1369, we will 21 see that there is a check to see if -- here we see this 22 Cache_TIMEOUT, and basically what this is doing is 23 checking to see if this particular record in the linked 24 list has expired. 25 While we're walking We identify that it has expired, and 6640e328-b5ee-4d66-89ae-bcd019768030 Page 131 1 immediately in Lines -- well, in the Lines 1372 through 2 1378, that is where it's removing the expired record. 3 And so this is, again, all within the same 4 access of the linked list while we're walking it. 5 has identified and removed the expired record. 6 It And if you go down further to Line 1382, 7 that's just updating the pointer to continue walking the 8 list. 9 And then, as I said, as you drop down to 1384, 10 you now have exited the list; and you have completed 11 walking the list. 12 13 14 Q. All right. it says rt_free(rth). A. So that on Line 13 -- 1378 there, Can you tell us what that means? Rt_free, that is what is removing -- well, 15 it's in combination with 13 -- it's actually a 16 combination of 1372 through 1378. 17 multiple operations to do the actual removal. 18 that's kind of the final step in removing that record. 19 Q. A. That's correct. 21 Q. Okay. And That removes the record? 20 You have to do those 22 23 24 25 So does Exhibit No. 48, the lines we just went over, does that -A. But it doesn't -- the record was actually removed above that -Q. Okay. 6640e328-b5ee-4d66-89ae-bcd019768030 Page 132 1 A. 2 the memory. 3 record is kind of deleted from the list, it is now 4 rt_free on Line 1378, is what is returning the record to 5 the operating system to be used for something else. 6 7 Q. 10 What that does is actually free As we've talked about before, once the I see. So what is the line that actually removes the record from the external chain? 8 9 -- in 1372. A. Actually, it's 1372, which is what changes the pointer and skips over and is effectively taking that record out of the list. 11 Q. Okay. So does Exhibit No. 48 -- Defendant's 12 Exhibit No. 48 describe on-the-fly garbage collection 13 with external chaining in a linked list? 14 A. Yes, ma'am, it does. 15 Q. Does it also have the automatic removal of 16 expired records? 17 A. Yes, ma'am. 18 that. 19 I talked -- just talked about it's walking the list. 20 It identifies the records and removes them while Q. And this code in Exhibit No. 48 was available 21 in 1995 and 1996, approximately one to two years before 22 the '120 patent was even applied for, correct? 23 A. Yes, ma'am. 24 Q. I think you talked about this a little bit 25 earlier. Yahoo! had Linux in late '95 or early '96? 6640e328-b5ee-4d66-89ae-bcd019768030 Page 133 1 A. That's correct. 2 Q. Does the 1995 -- does DX Exhibit No. 48 3 invalidate the '120 patent? 4 A. I believe it does. 5 Q. And, of course, you read the patent? 6 A. Right. 7 Q. And you studied it since your deposition -- 8 A. Yes, ma'am. 9 Q. -- to be able to come and talk to us here 10 today about it? 11 A. Yes, ma'am. 12 Q. And you've reviewed other patents in the past? 13 A. I have. 14 Q. And you've reviewed Judge Davis' claim 15 construction? 16 A. Yes, I have. 17 Q. And you are applying the terms as Judge Davis 18 has construed them in this patent? 19 A. Yes, ma'am. 20 Q. Thank you, sir. 21 22 Have you also reviewed the NRL code? A. 23 24 25 I have. MS. DOAN: Exhibit 215 -- oh, 37. Q. Casey, I believe that is I'm sorry. 37. (By Ms. Doan) Do you have that in front of 6640e328-b5ee-4d66-89ae-bcd019768030 Page 134 1 you, sir? 2 A. Yes, ma'am. I hope these lines match up. 3 Q. Well, I have NRL Code No. 37, and it's dated 4 9/28/1995 in the upper right-hand corner. 5 Is that what you have? 6 A. I have the file before that. 7 Q. The first page? 8 A. But this actually looks a little bit 9 10 different, but, again, I think the line numbers will match up. 11 Q. Okay. 12 A. Yes, ma'am. 13 Q. Okay. 14 A. They should. 15 16 19 20 So the lines should match up? So if you go to Line, I guess, 1332, to see if it matches. 17 18 You've got key.c; is that right? It does not match. Q. That's okay. Sorry. Let me give you my copy of Exhibit No. 37. A. Okay. It would be Line 1397. 21 Okay. Sorry. 22 All right. We're close. So that says key acquire. That's 23 just the -- that's the function I guess that I'll talk 24 about first. 25 Q. Let's go to -- Are -- 6640e328-b5ee-4d66-89ae-bcd019768030 Page 135 1 A. Sorry. 2 Q. That's all right. 3 A. This code is a little harder to read. Go ahead. It's 4 got a lot of kind of debugging, slash -- debugging 5 information that kind of confuses things, but... 6 Q. What is debugging information? 7 A. It's information that the computer prints out 8 to explain what's happening, for humans to read. 9 instead of just doing kind of its work to run the 10 11 12 And so computer, it's also printing this stuff out. Q. Is this also written in the language or the computer language C? 13 A. Yes, it is. 14 Q. And, of course, you read and write in C? 15 A. Yes, ma'am. 16 Q. Now, I think we covered this earlier, but 17 Exhibit No. 37 is the key.c file to the NRL code; is 18 that right? 19 A. Yes, ma'am. 20 Q. Okay. 21 22 23 24 25 And where are we -- what's happening on Line 1397? A. Well, that's just the start of it. I wanted to check to see if it was same. If you go down to Line 1431, this represents the -- where you see the word "for," unfortunately, this 6640e328-b5ee-4d66-89ae-bcd019768030 Page 136 1 is a little different than what we've seen in the past. 2 When we've looked at walking a linked list, we've seen 3 the word "while." 4 This "for" is very similar to that, almost 5 equivalent. 6 effectively -- I don't want to go into too much detail 7 here, I think, but the for loop -- it's called a for 8 loop instead of the while loop, and it's very similar to 9 that. 10 11 It's got some other stuff in there, but, And if you go down to -- you know, that for loop extends from 1431 down to 1459. 12 Q. 1459? 13 A. Yes, ma'am. 14 15 So that represents the loop that is walking the list. 16 Q. Okay. 17 A. So, again, this represents a linked list and 18 it is -- this code is walking that list, and we can see 19 at the top, it says for. 20 acquirelist next; ap; ap = ap next). 21 on 1431, that represents moving the pointer to the next 22 record. 23 Q. Okay. 24 A. If you look at Line -- and I don't want to go 25 And it says ap = key The ap = ap next through all this code, but if you look at Line 1445, we 6640e328-b5ee-4d66-89ae-bcd019768030 Page 137 1 look for a condition that checks to see, in this case, 2 has the record expired. 3 expiretime is less than time.tv_sec. 4 And you can kind of see ap This is identifying expired records while it's 5 walking the list, and then what it does with that -- in 6 fact, if you read the comments -- and, again, this is 7 not the computer code but it's comments, so it may not 8 necessarily match. 9 looking at this list, we may as well delete expired 10 But it says since we're already entries as we scan through the list. 11 And if you look down at Line 1454 and 145 -- 12 well, 1454 removes the record from the list. 13 we have a similar free, as we had before with the 14 rt_free in 1455, that frees up the memory to give it 15 back to the operating system to do something else. 16 Q. And then So Lines 1431 through 1459 are the part that's 17 the on-the-fly garbage collection while walking a linked 18 list; is that right? 19 A. That's correct. 20 Q. Okay. So this is a linked -- yes. And is there another part of this same 21 file, key.c in the NRL code, that talks about the hash 22 table with external chaining? 23 A. Yes, ma'am. It's going to be -- I'm going to 24 have to find it again, but around 615. 25 it's close. Let's see if Oh, 6 -- 6 -- 649. 6640e328-b5ee-4d66-89ae-bcd019768030 Page 138 1 Q. Okay. 2 A. So there are many examples in this file that 3 look at hash table or that -- this file is full of 4 routines and stuff that work on a hash table with 5 external chaining. 6 But I'll take you to Line 675, and the code 7 says prevnode = &keytable [indx]. 8 represents, the key table is the hash table. 9 is -- in this case, it's being passed into the code. 10 The index That's the hash value. 11 12 And what that And this next part of the code is, again, walking -- is walking the linked list. 13 Q. Okay. 14 A. So this part of it -- sorry. 15 So 676 is, again, this for loop construct that I talked about. 16 And, again, you can see where it walks the 17 list by starting at the front, which is the keynode = 18 keytable [indx].next. 19 to go to the next element by -- at the -- the last part 20 of that which says keynode = keynode.next), it starts on 21 676. 22 23 It ends on 685. Q. And then it advances the pointer This code is a little -- We can tell that from sort of the closed bracket or closed paren? 24 A. Well, actually, so -- yeah, it stops at 682. 25 Q. 682? 6640e328-b5ee-4d66-89ae-bcd019768030 Page 139 1 A. And the point of this isn't so much to talk 2 about walking the list, but it's just to show that this 3 is a hash table, and the hash table has -- each element 4 of the hash table is an external chain or linked list. 5 Q. Okay. 6 A. So this represents a hash table with external 7 8 9 10 11 chaining. Q. So Lines 675 to 682 of Exhibit No. 37 describes a hash table with external chaining; is that correct? A. Yes, ma'am, although you have to kind of go -- 12 the keytable -- I think that's -- that's accurate, yes, 13 ma'am. 14 Q. All right. So within the key.c of the NRL 15 code, you had one part of the code that talked about a 16 hash table with external chaining, and another part of 17 the card -- code that talked about on-the-fly garbage 18 collection with a linked list; is that right? 19 A. Yes, ma'am. 20 Q. And combined these two references, these two 21 lines, sections of lines that you've talked about from 22 the NRL code, do they invalidate the '120 patent? 23 A. I believe they do. 24 Q. And would these have been -- the hash table 25 with external chaining and linked list within on-the-fly 6640e328-b5ee-4d66-89ae-bcd019768030 Page 140 1 garbage collection, would that have been something to -- 2 that was well-known that you could interchange within 3 the -- a person of ordinary skill in the art back in 4 1995? 5 A. I believe so. And we've talked earlier about 6 the -- the hash tables with external chaining that's 7 been well-known back to the '70s or '60s, even further 8 back. 9 And the part that we looked at earlier which 10 walked the list, identified the expired entries and 11 removed them, that represents walking the list and 12 automatically expiring some of the -- or automatically 13 removing some of the expired records. 14 concepts are in this file. 15 So those two I think the concept of walking the list, this 16 represents -- I don't know how far back that goes. 17 wouldn't suggest it goes back to the '60s, but this is 18 an example in 1995 that represents that concept. 19 those two concepts together, my belief is, invalidates 20 the patent. 21 Q. 22 23 Okay. I So And combined together would be under the theory of obviousness, right? A. Yes. I mean, external -- external chaining in 24 a hash table or, again, a linked list, that linked list, 25 if there's some way to operate on a linked list that's 6640e328-b5ee-4d66-89ae-bcd019768030 Page 141 1 found -- discovered elsewhere, that's obvious to apply 2 that to any use of a linked list. 3 In this case, the linked list happens to be in 4 the hash table. 5 different things. 6 could be used in hash tables. 7 other data structures. 8 Linked list could be used for lots of They could be used standalone. They They could be used in So taking the capability of automatically 9 expiring, automatically removing expired entries in a 10 linked list and combining that with the hash table is, 11 to me, very obvious. 12 13 Q. Okay. And does the NRL code inval -- invalidate the '120 patent, in your opinion? 14 A. I believe it does. 15 Q. All right. And, of course, you know that Dan 16 McDonald will be testifying later on in this case about 17 this to explain the e-mail that Mr. Cawley was talking 18 about? 19 A. Yes, ma'am. 20 Q. Now, if you would review the actual accused 21 code in this case, 2.6.9 and 2.6.18? 22 A. I have. 23 Q. And you're aware that the reason we focus on 24 those two is because the majority of the 196,000 servers 25 with the accused Linux candidate code are in these two 6640e328-b5ee-4d66-89ae-bcd019768030 Page 142 1 versions; is that right? 2 A. Yes, ma'am. 3 Q. So, for example, he -- well, I don't know 4 where it went anymore. 5 So, for example, there are two versions of 6 generation ID code. Do you recall that, that Dr. Jones 7 went through yesterday? 8 A. Yes, ma'am. 9 Q. But there's only one offline server at Yahoo! 10 with each of those two versions, right? 11 A. There used to be. 12 Q. Okay. 13 So the vast majority of the servers we're talking about is in 2.6.9 and 2.6.18, right? 14 A. Yes. 15 Q. All right. Now, let's look at 2.6.9, and I 16 believe that's Exhibit No. DX -- Defendant's Exhibit 17 No. 74. 18 A. 19 That's good. 20 Q. Yes, ma'am. I have that one this time. And does 2.6., this Linux candidate code 21 version, identify a record in the same access of a 22 linked list? 23 A. No, it does not. 24 Q. How do you know that? 25 A. Well, looking at the code -- and we have -- 6640e328-b5ee-4d66-89ae-bcd019768030 Page 143 1 you guys, you have looked at this code before. 2 go down to Line -- 3 4 Q. So if we I think they have a copy of the code, the 2.6.9. 5 A. Okay. 6 Q. And is that -- 7 8 9 10 11 12 MS. DOAN: the yellow version? Q. Is that the green version or Who's got our copy? (By Ms. Doan) It says 2.6.9 at the top? 2.6.9? A. Yes. Sorry. Yes, this is -- again, I have the Exhibit 74. 13 And so at Line 776 -- 14 Q. 776? 15 A. -- that's the rt_intern_hash function that we 16 have been talking about. 17 And if we go down to Line 795, I think you 18 will be familiar with the while loop that begins walking 19 the linked list. 20 because I think you are somewhat familiar with it. 21 And I'll skip over the rest of it, But 795 begins walking the list and the end of 22 that list is -- sorry -- the end of that while loop is 23 on 836. 24 Q. Okay. 25 A. And, again, we've looked at this, but this is 6640e328-b5ee-4d66-89ae-bcd019768030 Page 144 1 the while loop that walks through the list, each entry; 2 and while it's walking through the list, one of the 3 things it does is it scores each -- each record. 4 Q. How do we know that? Where are those lines? 5 A. Yes. 6 Q. 826 through 829? 7 A. Sorry. 8 Q. Okay. 9 A. The 824 line is actually computing the score, So that's on Line 826 through 829. 824 through 829. 10 and then we're keeping track of the lowest score in 826 11 through 829. 12 13 So this is walking the list and is identifying records or -- it's identifying candidates. 14 And on 835, that's near the end of the while 15 loop. That's updating the pointer, which goes to the 16 next record. 17 Line 795 is completed on 836. 18 And, again, the while loop that begins So by the time we get to Line 838, we have 19 completed walking the list. 20 single element and analyzed every single element, and we 21 have effectively walked off the end of the list. 22 have completed the access of that list. 23 24 25 Q. We have gone through every And we So that would be between -- the first access of the list is between 795 and -A. 837. 6640e328-b5ee-4d66-89ae-bcd019768030 Page 145 1 Q. -- 837? 2 A. Yes. 3 Q. Okay. 4 And what happens in that first access between 795 and 837? 5 A. Well, there are a couple of things. It looks 6 for a match, but assuming there's no match, it's 7 doing -- it's doing the scoring for the candidates and 8 keeping track of the lowest score. 9 Q. Are there any records that are removed in the 10 Linux candidate code 2.6.9 in the first access -- or the 11 first walking all the way down the list from 795 to 837? 12 A. No, ma'am. As in the earlier example, we saw 13 where it actually removed it while it was walking the 14 list. 15 walking the list. In this example, there is no removal while it's 16 Q. Where does the removal take place? 17 A. It takes place after the first access, and you 18 see the lines 838 down to -- call it 847 where it's 19 checking to see if there's a candidate and to see how 20 long the linked list is. 21 again, have looked at this code and are possibly 22 familiar with it. I guess -- and you guys, 23 And on Lines 846 and 847 -- well, 846 is what 24 takes it out of the list, and 847 is what's freeing the 25 memory to go back to the operating system. 6640e328-b5ee-4d66-89ae-bcd019768030 Page 146 1 Q. 2 access? 3 A. So Lines 838 to 847 would be the second Yes, ma'am. That's going back and accessing 4 the list a second time. 5 completed at 837. 6 Q. Again, the first list was And you understand that Judge Davis has 7 instructed us that the '120 patent would require, when 8 the linked list is accessed, both identification and 9 removal of expired records occurs during the same access 10 of a linked list; is that right? 11 A. Yes, ma'am. 12 Q. And do both identification and removal of the 13 record happen in the same access in the 2.6.9 code? 14 A. No, ma'am. 15 Q. Now, we heard something yesterday about like a 16 spin_lock, spin_lock from Dr. Jones. 17 Do you recall that? 18 A. Yes, ma'am. 19 Q. Okay. So does the existence of a spin_lock or 20 spin_unlock in the Linux candidate code determine the 21 access? 22 A. No, ma'am. And again, there's no lock -- 23 there's no mention of a lock in the patent, and so, you 24 know, locks are -- locks are fairly arbitrary in where 25 they get placed in computer code. It can vary a lot, 6640e328-b5ee-4d66-89ae-bcd019768030 Page 147 1 depending on what type of lock you use and that type of 2 thing. 3 And so I think, again, as has been talked 4 about, there is no mention of the word lock in the 5 patent. 6 to -- to considering where the access is. 7 Q. So I don't see how that would -- would apply Okay. And as a technician, as you are, why 8 would a lock not define the access? 9 matter or not? 10 A. 11 Why would a lock Why would a lock matter or not? Well, again, there are many different ways to 12 do locking, and you could -- you could lock huge parts 13 of the operating system and do many, many operations 14 while you have things locked. 15 And, you know, there are things like giant 16 locks in kernels that lock the system for very long 17 periods of time, do many, many operations. 18 consider all that stuff to be a single access just is 19 kind of a silly idea. 20 21 Q. All right. And to And if you look at Exhibit No. -- it's DX77, that's the 2.6.18 Route.c? 22 A. Yes, ma'am. 23 Q. 77. A. Yes, ma'am. 24 25 That's another version of the candidate code? 6640e328-b5ee-4d66-89ae-bcd019768030 Page 148 1 2 Q. Are -- I know the line numbers are different, but essentially is it the same thing, walking the -- 3 A. Yeah. As has been talked about earlier, the 4 differences between 2.6.9 and 2.6.18 are mostly for the 5 purposes of -- these discussions are cosmetic. 6 are differences in the actual code, but not important to 7 walking the list, identifying records, removing them, 8 and et cetera. 9 Q. Sure. 11 A. Oh, sorry. 12 Q. There Can you just take us and tell us which 10 13 So we all have our copies of the green code. lines -- 14 A. Yes. Right. 15 Q. -- are the first access and the second? 16 A. So Line 937 -- 17 Q. Okay. 18 A. Oh, no. 19 Q. Hold on a second. Sorry. I'm sorry. Line 934. Mr. Morisseau just pointed 20 out to me, I think the green code is actually a version 21 of 2.6.27. 22 here. 23 24 25 It's not 2.6.18 that we're talking about So do we have an example of 2.6.18 to show the jury? MR. MORISSEAU: The jurors do not have 6640e328-b5ee-4d66-89ae-bcd019768030 Page 149 1 that. 2 MS. DOAN: 3 THE WITNESS: 4 They don't have that? Okay. We can show it on the screen. 5 MS. DOAN: 6 Sorry about that. 7 A. That's fine. Sorry about that. 8 We can show it on the screen. 9 I think I said 934 -- or Line 934. exactly what we just looked at. So that's It's the while loop. 10 Starts at 934, and this while loop ends on 9 -- or 7 -- 11 sorry -- 979. 12 Q. (By Ms. Doan) Okay. 13 A. And then -- 14 Q. And that was the first access? 15 A. That's the first access. That's walking the 16 list, looking at every single record in the list. 17 see the scoring on 967. 18 Q. 19 I tell you what. MS. DOAN: You Hold on one second. Judge Davis, we have a copy of 20 the 2.6.18 code. 21 quick so they can follow along? 22 23 Can we pass them out to the jury real Judge Davis, we actually have copies of this code. Can we pass it out to the jury real quick? 24 THE COURT: 25 That's fine. (Pause.) 6640e328-b5ee-4d66-89ae-bcd019768030 Page 150 1 Q. 2 Exhibit 77. 3 934 to 979? 4 A. 5 while loop. 6 979. 7 Q. (By Ms. Doan) All right. And I'm sorry. Yes. This is Defendants' I think you were on Line 934, which, again, is the start of the And that while loop goes from 934 down to How do you know that the first access ends 8 there as opposed to what Dr. Jones was telling us 9 yesterday? 10 A. Well, again, at 979 -- or sorry -- 980, which 11 is the first time you've -- you know, have completed the 12 while loop -- 980 isn't really any code, but it's kind 13 of blank. 14 981. And so the next statement to execute would be 15 But at that point, when you've completed the 16 while loop, you have gone through every single record, 17 and you have analyzed every single record, and you have 18 walked the entire list, and you've effectively -- like 19 as I said, you've walked off the end of the list. 20 Q. So you're at the very end of the list? 21 A. And you looked at the last pointer, and it was 22 empty, and so now you're -- have nowhere to go, so 23 you're coming off the list. 24 25 Q. So once you go all the way -- that was -- when Dr. Jones talked about yesterday with the sticky notes, 6640e328-b5ee-4d66-89ae-bcd019768030 Page 151 1 it was all the way to the eight records at the end of 2 the linked list? 3 4 A. And you go to the ninth record and you realize there is none, and that's when you stop the loop. 5 Q. You have to go back into the -- 6 A. That's the end of that access. 7 Q. Okay. 8 take place? 9 A. And so where does the second access Again, this is very similar to the previous 10 code we just talked about, and that's Line 981 where it 11 checks to see if there are any candidates. 12 are and the list is longer than eight or whatever the 13 elasticity is set to, it removes the record from the 14 list in Line 989, and then it frees and returns to the 15 operating system, the memory associated with that, on 16 Line 990. 17 Q. And if there And again, with respect to 2.6.18, is your 18 same analysis, with respect to -- does it matter about 19 the spin_lock/unlock? 20 A. It's the same. 21 Q. And does the 2.6.18 remove expired records as 22 required by Judge Davis in his claim construction? 23 A. I don't believe they do -- it does. 24 Q. Okay. 25 A. Well, so if you look at -- go back up to Line And why not? 6640e328-b5ee-4d66-89ae-bcd019768030 Page 152 1 967 and look at that -- look down through 973, call 2 it -- 3 Q. 973? 4 A. Well, just do a -- 5 THE WITNESS: 6 Well, do it in one highlight. 7 confusing. 8 Yeah, there you go. That's two? 9 10 Q. (By Ms. Doan) Yeah. So from 9 -- give me those -- the spread of those lines. 11 12 Can you just do one highlight instead of THE WITNESS: that's 966 -- or no -- sorry. 13 That's fine. From 966 to -- Just do one highlight Yeah, 967 -- okay. But it doesn't line up, so 14 if you could just kill the highlights and do -- kill the 15 other one, and do 967 through whatever I said, 9 -- or 16 972. 17 MS. DOAN: 18 different pages? 19 Can you do that if it's on do that. 20 21 He has two pages, so he can't really THE WITNESS: MS. DOAN: 23 THE WITNESS: 25 Sorry. I didn't understand that. 22 24 Oh, sorry. That's okay. Okay. All right. So it's not going to quite line up, but... A. All right. Okay. So this -- and Lines 967, 6640e328-b5ee-4d66-89ae-bcd019768030 Page 153 1 this is computing the score for that record in the list. 2 And this score is -- there's not a score about whether 3 the record is obsolete; this is a score -- has a bunch 4 of different factors that go into it, but it's simply a 5 score. 6 And then we keep track of the lowest score. And so in some sense, this is like pulling 7 straws; and because the score that's lowest is going to 8 get kicked out, it's kind of pulling straws, and the one 9 with -- whoever ends -- the record with the smallest 10 straw is going to get kicked out. 11 Now, it has nothing to do with whether the 12 record is expired or obsolete. 13 identified are all valid data; they are useful in the 14 future; and they could be used to do the -- you know, 15 the route lookup if it was there. 16 These records that are So there's nothing obsolete about these 17 entries. 18 somewhat at random, which one to pull out, and these are 19 all useful data and not obsolete or expired. 20 Q. And again, we're just kind of picking one So by applying Judge Davis's claim 21 construction of the word expired, which says obsolete 22 and, therefore, no longer needed or desired in the 23 storage system because of some condition, event, or 24 period of time, the 2.6.18 and 2.6.9 Linux code do not 25 meet that definition of expired record? 6640e328-b5ee-4d66-89ae-bcd019768030 Page 154 1 A. Yes. We've looked at the 2.6.18, but the 2 same -- the same reasoning applies to 2.6.9, which that 3 code is -- I believe it's identical character for 4 character. 5 6 Q. In your opinion, does the Linux candidate code -- sorry. 7 8 In your opinion, does the Linux candidate code infringe the '120 patent? 9 A. I believe it does not. 10 Q. And whether it's Version 2.6.18 or 2.6.9 or 11 any of the other versions that we covered yesterday with 12 Dr. Jones? 13 14 A. Anything with the candidate code, I believe, does not. 15 Q. Okay. 17 A. I haven't looked at that. 18 Q. Why not? 19 A. I saw it for the first time -- we have -- 16 You haven't looked at the generation ID code? 20 sorry. 21 servers had never performed a single function for the 22 Yahoo! website. 23 realized that they were running generation ID code, we 24 immediately wiped those servers clean. 25 We had two servers running that code. They were in a test lab. So we no longer have those. These Once we We had them. I 6640e328-b5ee-4d66-89ae-bcd019768030 Page 155 1 didn't think it was important to look at that, given 2 that the other 196,338 servers or whatever have the 3 older 2.6.9 and 2.6.18, so that's what I focused on. 4 5 Q. Okay. Thank you, sir. I want to switch gears for a little bit -- 6 A. Sure. 7 Q. -- and talk about now denial of service 8 attacks, because I know that's something that Mr. Cawley 9 covered with you as well. 10 A. Yes, ma'am. 11 Q. Has Yahoo!'s system ever been a target for a 12 denial of service attack? 13 A. Yes. 14 Q. And was Yahoo! a target for denial of service 15 attacks in 2005 before the candidate code was ever 16 written? 17 A. Yes, ma'am. 18 Q. And was Yahoo! a target for denial of service 19 attacks after the candidate code in the Linux operating 20 system? 21 A. Yes, ma'am. 22 Q. When you say we're a target for a denial of 23 24 25 service attack, what do you mean by that? A. Target just means, you know, we -- there are a lot of people out there trying to do malicious things, 6640e328-b5ee-4d66-89ae-bcd019768030 Page 156 1 and we have a lot of services we offer, and we serve a 2 lot of people, and we are one of the biggest targets on 3 the web. 4 are out there doing malicious things, we end up being a 5 target for many of them. 6 Q. And because there are a number of people that I had one other question about this code. 7 so sorry. 8 I'm Do you mind going back to that in 2677 -- Exhibit No. 277 (sic)? 9 A. Okay. 10 Q. Because I want to make sure -- we're all 11 talking about so many different lines of code. 12 2.6.18 code, that's the entire Route.c; that's the 13 entire route cache, correct? 14 15 The And if you'll look at the very front page, it says at the top front line -- 16 A. Yes, ma'am. 17 Q. -- jEdit - Source Code_2.6.18_route.c? 18 A. Yes. 19 Q. Okay. 20 A. I haven't verified that this exhibit That's the entire route cache? 21 represents every single line of that file, but the route 22 cache is in that file. 23 24 25 Q. There's basically -- I think the copy we have has about 3178 lines? A. I think mine has -- mine has a few more than 6640e328-b5ee-4d66-89ae-bcd019768030 Page 157 1 that, but -- 2 Q. Actually, it does. 3 A. 3214. 4 Q. 3214 -- 5 A. 3214. It's got 3214, right? Yeah. I mean, I haven't -- I haven't 6 actually -- I mean, I have downloaded the source code, 7 but I haven't compared it to this to see if they're 8 actually -- this printout matches what you can download. 9 10 11 12 13 14 Q. Okay. And basically, Bedrock is talking about 41 of these lines in 2.6.18, correct? A. My understanding is it's about 40. I haven't counted it personally. Q. Okay. And you mentioned that you had downloaded this code recently? 15 A. Yes, ma'am. 16 Q. Why did you do that? 17 A. Well, for purposes of analysis. 18 I downloaded both the 2.6.9 Linux kernel and the 2.6.8 Linux kernel. 19 Q. And can any of us do that in the courtroom? 20 A. Yes, ma'am. It's readily available. Many 21 places you can go, but kind of -- source of truth or 22 the -- kind of the main place to go would be kernel.org. 23 24 25 Q. And we're showing a webpage up here from www.kernel.org? A. Correct. And this has -- you can pretty much 6640e328-b5ee-4d66-89ae-bcd019768030

Disclaimer: Justia Dockets & Filings provides public litigation records from the federal appellate and district courts. These filings and docket sheets should not be considered findings of fact or liability, nor do they necessarily reflect the view of Justia.


Why Is My Information Online?