Hi Ali,

So I compiled the linux kernel again, but the problem still appears. I
tried disassembling the kernel and got the PC of the instruction which was
creating the address with the value of R31.
fffffc00006b3cbc:       40 06 80 21     lda     s3,1600(v0)
This is in a function e1000_probe, which is defined
in drivers/net/e1000/e1000_main.c. I am not sure, would it be possible for
you to send this particular file from your linux kernel and I can try
building with that to see if it works?

Pritha

On Mon, Feb 20, 2012 at 9:59 PM, Pritha Ghoshal <pritha9...@tamu.edu> wrote:

> Hi Ali,
>
> I'll try that out, should I make a new repo under the repo.gem5.org?
>
> Pritha
>
> On Mon, Feb 20, 2012 at 9:33 PM, Ali Saidi <sa...@umich.edu> wrote:
>
>> It seems like it's broken at the time. Yes you could start with a the
>> kernel source tar ball.
>> http://www.kernel.org/pub/linux/kernel/v2.6/longterm/v2.6.27/linux-2.6.27.61.tar.bz2
>>
>> You'd probably need to turn that into a mercurial repository by creating
>> a new repo and committing all the code and the apply the patch queue on top
>> of that.
>>
>> Ali
>>
>> On Feb 20, 2012, at 6:59 PM, Pritha Ghoshal wrote:
>>
>> Hi Ali,
>>
>> I was trying to compile the kernel again but I am not able to run this
>> command:
>> hg clone http://www.kernel.org/hg/linux-2.6/
>>
>> Should I just download the kernel from the ftp repository?
>>
>> Pritha
>>
>> On Mon, Feb 20, 2012 at 6:40 PM, Ali Saidi <sa...@umich.edu> wrote:
>>
>>> Hi Pritha,
>>>
>>> I really don't know. The kernel I tried was 2.6.27.6 and is a the
>>> mercurial repository of the linux kernel with the following patch queue
>>> applied: http://repo.m5sim.org/linux-patches There is nothing in there
>>> that touches the e1000 driver anymore.
>>>
>>> Ali
>>>
>>> On Feb 20, 2012, at 11:29 AM, Pritha Ghoshal wrote:
>>>
>>> 51061742000: drivesys.cpu + A0 T0 : @e1000_probe+608    : ldq
>>>  r16,680(r11)    : MemRead :  D=0x0000000000000000 A=0xfffffc00070242a8
>>> 51061747000: drivesys.cpu + A0 T0 : @tsunami_ioremap    : lda
>>>  r1,-3(r31)      : IntAlu :  D=0xfffffffffffffffd
>>> 51061747500: drivesys.cpu + A0 T0 : @tsunami_ioremap+4    : sll
>>>  r1,40,r1        : IntAlu :  D=0xfffffd0000000000
>>> 51061748000: drivesys.cpu + A0 T0 : @tsunami_ioremap+8    : addq
>>> r16,r1,r0       : IntAlu :  D=0xfffffd0000000000
>>> 51061749500: drivesys.cpu + A0 T0 : @e1000_probe+648    : stq
>>>  r0,752(r12)     : MemWrite :  D=0xfffffd0000000000 A=0xfffffc000722b930
>>>
>>> So the address is actually coming from a modified version of the value
>>> in R31. It is shifted left logically 40 bits and that's how the wrong
>>> address is generated. This value gets stored in
>>> address A=0xfffffc000722b930.
>>>
>>> I am still confused about how you don't see this error, do I have some
>>> old versions of files?
>>>
>>> Pritha
>>>
>>> On Mon, Feb 20, 2012 at 10:34 AM, Ali Saidi <sa...@umich.edu> wrote:
>>>
>>>> I wonder who wrote to A=0xfffffc000722b930 last. That would be the
>>>> next step in debugging this is to understand where the address got
>>>> initially generated from.
>>>>
>>>> Ali
>>>>
>>>> On Feb 18, 2012, at 9:28 PM, Pritha Ghoshal wrote:
>>>>
>>>> Hi Ali,
>>>>
>>>> So I think this is the relevant trace:
>>>> 51061923500: drivesys.cpu + A0 T0 : @e1000_probe+1412    : ldq
>>>>  r16,144(r30)    : MemRead :  D=0xfffffc000722b930 A=0xfffffc0007033c78
>>>> 51061927500: drivesys.cpu + A0 T0 : @e1000_set_media_type+20    : bis
>>>>      r31,r16,r9      : IntAlu :  D=0xfffffc000722b930
>>>> 51061942000: drivesys.cpu + A0 T0 : @e1000_set_media_type+184    : ldq
>>>>        r16,0(r9)       : MemRead :  D=0xfffffd0000000000
>>>> A=0xfffffc000722b930
>>>> 51061943000: drivesys.cpu + A0 T0 : @e1000_set_media_type+192    : lda
>>>>        r16,8(r16)      : IntAlu :  D=0xfffffd0000000008
>>>> 51061947500: drivesys.cpu + A0 T0 : @tsunami_readl    : ldl
>>>>  r0,0(r16)       : MemRead :
>>>>
>>>> The last line of code gets executed for the NSGige adapter as well, but
>>>> the previous part of the code which sets r16, sets a different value for
>>>> that adapter, as this is adapter specific code.
>>>>
>>>> I am not sure how to rectify the error still though..
>>>>
>>>> Pritha
>>>>
>>>>
>>>> On Sat, Feb 18, 2012 at 5:47 PM, Ali Saidi <sa...@umich.edu> wrote:
>>>>
>>>>> If you get an execution trace right before this happens that might
>>>>> shed some light on it. Tracking how the address that is being used is
>>>>> assembled by the cpu is a good start.
>>>>>
>>>>> Nothing jumps out at me though, so I'm pretty confused why I don't see
>>>>> the problem and you do.
>>>>>
>>>>> Ali
>>>>>
>>>>> On Feb 16, 2012, at 4:57 PM, Pritha Ghoshal wrote:
>>>>>
>>>>> >
>>>>> >> Hi Pritha,
>>>>> >> I took a old kernel from when i published the original paper in
>>>>> 2009 (2.6.27)
>>>>> > and it seems to work with the e1000 NIC if I just make the following
>>>>> change:
>>>>> >> diff -r ef8630054b5e configs/common/FSConfig.py---
>>>>> > a/configs/common/FSConfig.py  Tue Feb 14 14:15:30 2012 -0500+++
>>>>> > b/configs/common/FSConfig.py  Thu Feb 16 11:28:32 2012 -0600 <at>
>>>>>  <at>  -58,7
>>>>> > +58,7  <at>  <at>  def makeLinuxAlphaSystem(mem_mode, mdesc = None):
>>>>> > IO_address_space_base = 0x80000000000     class
>>>>> BaseTsunami(Tsunami):-
>>>>> > ethernet = NSGigE(pci_bus=0, pci_dev=1, pci_func=0)+        ethernet
>>>>> =
>>>>> > IGbE_e1000(pci_bus=0, pci_dev=1, pci_func=0)         ide =
>>>>> IdeController(disks=
>>>>> > [Parent.disk0, Parent.disk2],
>>>>> pci_func=0, pci_dev=0,
>>>>> > pci_bus=0)
>>>>> >> I don't know what kernel you're using but it's likely there is
>>>>> either an issue
>>>>> > with the configuration of it or perhaps something has broken in the
>>>>> alpha
>>>>> > branch.
>>>>> >> From an Alpha/Tsunami perspective, virtual addresses that start
>>>>> with ffffc map
>>>>> > to physical memory directly and addresses that start with ffffd map
>>>>> to the i/o.
>>>>> > I'd have to look at the tsunami memory map documentation which isn't
>>>>> close at
>>>>> > hand to what 80000000008 could be, but it doesn't seem right. You
>>>>> could use the
>>>>> > PCIDev Ethernet trace flags to understand what addresses the PCI
>>>>> devices are
>>>>> > getting assigned.
>>>>> >> Thanks,
>>>>> >> Ali
>>>>> >>
>>>>> >
>>>>> > Hi Ali,
>>>>> >
>>>>> > I had tried using the same modification in FSConfig.py, and even the
>>>>> kernel I am
>>>>> > using in 2.6.27. Should I try to build the kernel again and check?
>>>>> >
>>>>> > Regarding the addresses, I used the flag BusAddrRanges, I am not
>>>>> able to see any
>>>>> > of the address ranges mapped to the IOBus which starts from
>>>>> 0x80000000000. The
>>>>> > closest one I can see is:
>>>>> >     0: drivesys.tsunami.fake_OROM: registering range:
>>>>> 0x800000a0000-0x60000
>>>>> >      0: drivesys.iobus: Adding range 0x800000a0000 - 0x800000fffff
>>>>> for id 12
>>>>> > All the rest seem to be starting with 0x801**** instead of 0x800****.
>>>>> > For membus this is the range:
>>>>> >      0: drivesys.membus: Adding range 0x80000000000 -
>>>>> 0xffffffffffffffff for id
>>>>> > 2
>>>>> > So there is one range of addresses which are not mapped to anywhere
>>>>> on IO bus,
>>>>> > even though the
>>>>> >    IO_address_space_base = 0x80000000000
>>>>> > is set in FSConfig.py.
>>>>> > But the mapping of addresses do not change from NSGigE adapter
>>>>> mappings, and
>>>>> > there is no error in that case.
>>>>> >
>>>>> > I enabled Fetch flag to see the addresses being accessed before the
>>>>> error
>>>>> > condition, and in the e100 NIC, this is the faulting address:
>>>>> > 51061947500: drivesys.cpu: Fetch: PC:0xfffffc0000324800
>>>>> > 51061947500: drivesys.cpu: Address is fffffd0000000008, Physical
>>>>> address
>>>>> > 80000000008
>>>>> >
>>>>> > But in the case of NSGigE, the same address brings forward a
>>>>> different virtual
>>>>> > address for the read:
>>>>> > 51379655000: drivesys.cpu: Fetch: PC:0xfffffc0000324800
>>>>> > 51379655000: drivesys.cpu: Address is fffffd0009000018, Physical
>>>>> address
>>>>> > 80009000018
>>>>> >
>>>>> > For the other cases, the sequence addresses are identical in case of
>>>>> NSGigE and
>>>>> > IGbE_e1000 adapters. eg:
>>>>> > NSGigE:
>>>>> > 51690478500: drivesys.cpu: Fetch: PC:0xfffffc0000319ce4
>>>>> > 51690478500: drivesys.cpu: Address is fffffc000085e208, Physical
>>>>> address 85e208
>>>>> > e1000:
>>>>> > 51061946500: drivesys.cpu: Fetch: PC:0xfffffc0000319ce4
>>>>> > 51061946500: drivesys.cpu: Address is fffffc000085e208, Physical
>>>>> address 85e208
>>>>> >
>>>>> >
>>>>> > Could you give any pointer regarding where this faulty address is
>>>>> getting
>>>>> > generated for this particular case?
>>>>> >
>>>>> > Pritha
>>>>> >
>>>>> >
>>>>> >
>>>>> >
>>>>> >
>>>>> > _______________________________________________
>>>>> > gem5-users mailing list
>>>>> > gem5-users@gem5.org
>>>>> > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>>>>
>>>>> _______________________________________________
>>>>> gem5-users mailing list
>>>>> gem5-users@gem5.org
>>>>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>>>>
>>>>
>>>> _______________________________________________
>>>> gem5-users mailing list
>>>> gem5-users@gem5.org
>>>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> gem5-users mailing list
>>>> gem5-users@gem5.org
>>>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>>>
>>>
>>> _______________________________________________
>>> gem5-users mailing list
>>> gem5-users@gem5.org
>>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>>
>>>
>>>
>>> _______________________________________________
>>> gem5-users mailing list
>>> gem5-users@gem5.org
>>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>>
>>
>> _______________________________________________
>> gem5-users mailing list
>> gem5-users@gem5.org
>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>
>>
>>
>> _______________________________________________
>> gem5-users mailing list
>> gem5-users@gem5.org
>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>
>
>
_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to