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, ).
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?