Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 28 May 2015 15:26:32 +0200
From:      Stefano Garzarella <stefanogarzarella@gmail.com>
To:        Oleg Prozorov <oleg.prozorov@gmail.com>
Cc:        "freebsd-net@freebsd.org" <net@freebsd.org>, Luigi Rizzo <rizzo@iet.unipi.it>,  Giuseppe Lettieri <g.lettieri@iet.unipi.it>
Subject:   Re: Netmap problem with e1000e driver
Message-ID:  <CAO0mX5YqvTdtZAGAcjfJ%2BEOwGvDQLhtmFQ%2BVK%2BYGPjLO-tAefg@mail.gmail.com>
In-Reply-To: <CACkYmBB1O8FG7yU-4RAsFyb0tpX=EfbnNeQkqRTs2Zw8J6rJKw@mail.gmail.com>
References:  <CACkYmBDEiN%2BUz5ztkAEuTHEY2cAqp2mvR1FdFdD7ht%2BVPL-Zxw@mail.gmail.com> <CAO0mX5bbfeHkAmuhagQ-8DN1AJCX7rETbnq7pLVHMms34oijJQ@mail.gmail.com> <CACkYmBB1O8FG7yU-4RAsFyb0tpX=EfbnNeQkqRTs2Zw8J6rJKw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--f46d040fa1d01b4c210517245007
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Hi Oleg,
can you try to apply this patch in this way:

1) untar netmap achive
2) dowonload linux source
3) in netmap-32e06f9d18bf/LINUX directory
 3.1) ./configure  --kernel-sources=3D/usr/src/linux-source-3.16/
--drivers=3De1000e
 3.2) make clean all

 3.3) patch -p2 < path/to/e1000e_fix.patch
 3.4) make

4) rmmod e1000e
5) insmod ./netmap.ko
6) insmod ./e1000e/e1000e.ko

You must do make in LINUX dir before apply the patch and after that, you
need to do again make (without clean).

Tell me if it works.

Thanks,
Stefano



--- netmap/LINUX/e1000e/netdev.c 2015-05-28 15:31:31.136816911 +0200
+++ netmap/LINUX/e1000e/netdev-new.c 2015-05-28 15:33:38.503484647 +0200
@@ -4028,6 +4028,10 @@ int e1000e_up(struct e1000_adapter *adap

  netif_start_queue(adapter->netdev);

+#ifdef DEV_NETMAP
+ netmap_enable_all_rings(adapter->netdev);
+#endif /* DEV_NETMAP */
+
  /* fire a link change interrupt to start the watchdog */
  if (adapter->msix_entries)
  ew32(ICS, E1000_ICS_LSC | E1000_ICR_OTHER);

2015-05-28 14:39 GMT+02:00 Oleg Prozorov <oleg.prozorov@gmail.com>:

>
> Hello Stefano,
> I am working on Debian 8 jessy:
>
> kernel version: 3.16.0-4-amd64
>
> i used netmap from link :
> https://netmap.googlecode.com/archive/32e06f9d18bf82e40a7c5b6e769c0ca7607=
913fc.tar.gz
>
>
> I did the next steps:
> 1) untar netmap achive
> 2) dowonload linux source
> 3) in netmap-32e06f9d18bf/LINUX directory
>  3.1) ./configure  --kernel-sources=3D/usr/src/linux-source-3.16/
> --drivers=3De1000e
>  3.2) make clean all
> 4) rmmod e1000e
> 5) insmod ./netmap.ko
> 6) insmod ./e1000e/e1000e.ko
>
>
> Ethernet adapter:
> 02:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network
> Connection
> Subsystem: Intel Corporation Gigabit CT Desktop Adapter
> Flags: bus master, fast devsel, latency 0, IRQ 16
> Memory at f7dc0000 (32-bit, non-prefetchable) [size=3D128K]
> Memory at f7d00000 (32-bit, non-prefetchable) [size=3D512K]
> I/O ports at e000 [size=3D32]
> Memory at f7de0000 (32-bit, non-prefetchable) [size=3D16K]
> Expansion ROM at f7d80000 [disabled] [size=3D256K]
> Capabilities: [c8] Power Management version 2
> Capabilities: [d0] MSI: Enable- Count=3D1/1 Maskable- 64bit+
> Capabilities: [e0] Express Endpoint, MSI 00
> Capabilities: [a0] MSI-X: Enable+ Count=3D5 Masked-
> Capabilities: [100] Advanced Error Reporting
> Capabilities: [140] Device Serial Number 68-05-ca-ff-ff-28-36-f5
> Kernel driver in use: e1000e
>
> 03:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network
> Connection
> Subsystem: Intel Corporation Gigabit CT Desktop Adapter
> Flags: bus master, fast devsel, latency 0, IRQ 17
> Memory at f7cc0000 (32-bit, non-prefetchable) [size=3D128K]
> Memory at f7c00000 (32-bit, non-prefetchable) [size=3D512K]
> I/O ports at d000 [size=3D32]
> Memory at f7ce0000 (32-bit, non-prefetchable) [size=3D16K]
> Expansion ROM at f7c80000 [disabled] [size=3D256K]
> Capabilities: [c8] Power Management version 2
> Capabilities: [d0] MSI: Enable- Count=3D1/1 Maskable- 64bit+
> Capabilities: [e0] Express Endpoint, MSI 00
> Capabilities: [a0] MSI-X: Enable+ Count=3D5 Masked-
> Capabilities: [100] Advanced Error Reporting
> Capabilities: [140] Device Serial Number 68-05-ca-ff-ff-22-19-e7
> Kernel driver in use: e1000e
>
>
> My application work as netmap bridge.
>
> rx -tx in one thread
> 02:00.0 -> 03:00.0
>
> rx-tx in one thread
> 03:00.0 -> 02:00.0
>
> I have attached my Netmap engine NetmapStream.cpp.
>
> On Intel I350 T2 having Network adapter link bringing down/up ethernet
> adapter has recovered successfully approx in 3-5 sec without driver crash=
.
>
>
> Thx,
> Oleg.
>
>
> 2015-05-28 12:54 GMT+03:00 Stefano Garzarella <stefanogarzarella@gmail.co=
m
> >:
>
>> Hi Oleg,
>> I'm working on netmap with Luigi and Giuseppe (in cc).
>>
>> I tried to do the same steps, but I can not produce the crash.
>>
>> Can you you send us your kernel and netmap version?
>> When you put down and up the interface, are you in tx or rx?
>>
>> Cheers,
>> Stefano
>>
>> 2015-05-27 17:26 GMT+02:00 Oleg Prozorov <oleg.prozorov@gmail.com>:
>>
>>> Hello All,
>>> I am using Netmap technology in my program and have the problem :
>>> when I put eth link down and then have it up netmap goes down with kern=
el
>>> messages:
>>>
>>> log from dmesg:
>>>
>>> [ 2457.286289] irq 44: nobody cared (try booting with the "irqpoll"
>>> option)
>>> [ 2457.286296] CPU: 2 PID: 0 Comm: swapper/2 Tainted: G           O
>>> 3.16.0-4-amd64 #1 Debian 3.16.7-ckt9-3~deb8u1
>>> [ 2457.286298] Hardware name: System manufacturer System Product
>>> Name/P8H61-MX R2.0, BIOS 0803 10/26/2012
>>> [ 2457.286300]  ffff880198b544c4 ffffffff8150ac96 ffff880198b54400
>>> ffffffff810bd10d
>>> [ 2457.286304]  ffff880198b54400 000000000000002c 0000000000000000
>>> ffffffff810bd631
>>> [ 2457.286307]  0000000000000000 0000000000000000 000000000000002c
>>> 0000000000000000
>>> [ 2457.286310] Call Trace:
>>> [ 2457.286312]  <IRQ>  [<ffffffff8150ac96>] ? dump_stack+0x41/0x51
>>> [ 2457.286324]  [<ffffffff810bd10d>] ? __report_bad_irq+0x2d/0xc0
>>> [ 2457.286328]  [<ffffffff810bd631>] ? note_interrupt+0x241/0x290
>>> [ 2457.286332]  [<ffffffff810bae51>] ? handle_irq_event_percpu+0xa1/0x1=
90
>>> [ 2457.286336]  [<ffffffff810baf78>] ? handle_irq_event+0x38/0x60
>>> [ 2457.286341]  [<ffffffff810bda05>] ? handle_edge_irq+0x85/0x150
>>> [ 2457.286347]  [<ffffffff810150ed>] ? handle_irq+0x1d/0x30
>>> [ 2457.286350]  [<ffffffff81513bf9>] ? do_IRQ+0x49/0xe0
>>> [ 2457.286355]  [<ffffffff81511aad>] ? common_interrupt+0x6d/0x6d
>>> [ 2457.286356]  <EOI>  [<ffffffff8108ac6d>] ?
>>> __hrtimer_start_range_ns+0x1cd/0x390
>>> [ 2457.286364]  [<ffffffff813ddb52>] ? cpuidle_enter_state+0x52/0xc0
>>> [ 2457.286368]  [<ffffffff813ddb48>] ? cpuidle_enter_state+0x48/0xc0
>>> [ 2457.286372]  [<ffffffff810a7e68>] ? cpu_startup_entry+0x2f8/0x400
>>> [ 2457.286375]  [<ffffffff81042c4f>] ? start_secondary+0x20f/0x2d0
>>> [ 2457.286377] handlers:
>>> [ 2457.286384] [<ffffffffa0732da0>] e1000_msix_other [e1000e]
>>> [ 2457.286386] Disabling IRQ #44
>>>
>>> before i have the next steps:
>>>
>>> insmod ./netmap.ko
>>> insmod ./e1000e/e1000e.ko
>>>
>>> log from dmesg:
>>>
>>> [ 1645.548786] e1000e: Intel(R) PRO/1000 Network Driver - 2.3.2-k
>>> [ 1645.548791] e1000e: Copyright(c) 1999 - 2014 Intel Corporation.
>>> [ 1645.549056] e1000e 0000:02:00.0: Interrupt Throttling Rate (ints/sec=
)
>>> set to dynamic conservative mode
>>> [ 1645.549089] e1000e 0000:02:00.0: irq 42 for MSI/MSI-X
>>> [ 1645.549094] e1000e 0000:02:00.0: irq 43 for MSI/MSI-X
>>> [ 1645.549098] e1000e 0000:02:00.0: irq 44 for MSI/MSI-X
>>> [ 1645.704831] 635.291734 [2720] netmap_attach             success for
>>> eth0
>>> tx 1/256 rx 1/256 queues/slots
>>> [ 1645.705079] e1000e 0000:02:00.0 eth0: registered PHC clock
>>> [ 1645.705083] e1000e 0000:02:00.0 eth0: (PCI Express:2.5GT/s:Width x1)
>>> 68:05:ca:28:36:f5
>>> [ 1645.705086] e1000e 0000:02:00.0 eth0: Intel(R) PRO/1000 Network
>>> Connection
>>> [ 1645.705100] e1000e 0000:02:00.0 eth0: MAC: 3, PHY: 8, PBA No:
>>> E46981-008
>>> [ 1645.705349] e1000e 0000:03:00.0: Interrupt Throttling Rate (ints/sec=
)
>>> set to dynamic conservative mode
>>> [ 1645.705381] e1000e 0000:03:00.0: irq 45 for MSI/MSI-X
>>> [ 1645.705386] e1000e 0000:03:00.0: irq 46 for MSI/MSI-X
>>> [ 1645.705390] e1000e 0000:03:00.0: irq 47 for MSI/MSI-X
>>> [ 1645.739490] systemd-udevd[2715]: renamed network interface eth0 to
>>> eth5
>>> [ 1645.824716] IPv6: ADDRCONF(NETDEV_UP): eth5: link is not ready
>>> [ 1645.848756] 635.435799 [2720] netmap_attach             success for
>>> eth0
>>> tx 1/256 rx 1/256 queues/slots
>>> [ 1645.848851] e1000e 0000:03:00.0 eth0: registered PHC clock
>>> [ 1645.848856] e1000e 0000:03:00.0 eth0: (PCI Express:2.5GT/s:Width x1)
>>> 68:05:ca:22:19:e7
>>> [ 1645.848859] e1000e 0000:03:00.0 eth0: Intel(R) PRO/1000 Network
>>> Connection
>>> [ 1645.848875] e1000e 0000:03:00.0 eth0: MAC: 3, PHY: 8, PBA No:
>>> E46981-008
>>> [ 1645.869528] systemd-udevd[2715]: renamed network interface eth0 to
>>> eth6
>>> [ 1645.949935] IPv6: ADDRCONF(NETDEV_UP): eth6: link is not ready
>>> [ 1648.795532] e1000e: eth5 NIC Link is Up 1000 Mbps Full Duplex, Flow
>>> Control: Rx/Tx
>>> [ 1648.795856] IPv6: ADDRCONF(NETDEV_CHANGE): eth5: link becomes ready
>>> [ 1648.843497] e1000e: eth6 NIC Link is Up 1000 Mbps Full Duplex, Flow
>>> Control: Rx/Tx
>>> [ 1648.843820] IPv6: ADDRCONF(NETDEV_CHANGE): eth6: link becomes ready
>>> [ 1668.060841] e1000e: eth5 NIC Link is Up 1000 Mbps Full Duplex, Flow
>>> Control: Rx/Tx
>>> [ 1668.212692] e1000e: eth6 NIC Link is Up 1000 Mbps Full Duplex, Flow
>>> Control: Rx/Tx
>>>
>>>
>>> My program used netmap desc:
>>> root@debian:/home/debian/Projects/bin# lsmod | grep netmap
>>> netmap                 99228  5 e1000e
>>>
>>>
>>> Then even if it shows that link is up net map stops to work and only
>>> rmmod/insmod and restart of the netmap can bring it back to work.
>>>
>>> Could you please help me with it ?
>>>
>>> Thx a lot,
>>> Oleg.
>>> _______________________________________________
>>> freebsd-net@freebsd.org mailing list
>>> http://lists.freebsd.org/mailman/listinfo/freebsd-net
>>> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
>>>
>>
>>
>>
>> --
>> *Stefano Garzarella*
>> Software Engineer
>>
>> e-mail: stefano.garzarella@gmail.com
>> github: http://github.com/stefano-garzarella
>> linkedin: http://it.linkedin.com/pub/stefano-garzarella
>>
>
>
>
> --
> =D0=A1 =D1=83=D0=B2=D0=B0=D0=B6=D0=B5=D0=BD=D0=B8=D0=B5=D0=BC,
> =D0=9E=D0=BB=D0=B5=D0=B3 =D0=9F=D1=80=D0=BE=D0=B7=D0=BE=D1=80=D0=BE=D0=B2=
.
>



--=20
*Stefano Garzarella*
Software Engineer

e-mail: stefano.garzarella@gmail.com
github: http://github.com/stefano-garzarella
linkedin: http://it.linkedin.com/pub/stefano-garzarella

--f46d040fa1d01b4c210517245007
Content-Type: application/octet-stream; name="e1000e_fix.patch"
Content-Disposition: attachment; filename="e1000e_fix.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_ia87qjj61

LS0tIG5ldG1hcC9MSU5VWC9lMTAwMGUvbmV0ZGV2LmMJMjAxNS0wNS0yOCAxNTozMTozMS4xMzY4
MTY5MTEgKzAyMDAKKysrIG5ldG1hcC9MSU5VWC9lMTAwMGUvbmV0ZGV2LW5ldy5jCTIwMTUtMDUt
MjggMTU6MzM6MzguNTAzNDg0NjQ3ICswMjAwCkBAIC00MDI4LDYgKzQwMjgsMTAgQEAgaW50IGUx
MDAwZV91cChzdHJ1Y3QgZTEwMDBfYWRhcHRlciAqYWRhcAogCiAJbmV0aWZfc3RhcnRfcXVldWUo
YWRhcHRlci0+bmV0ZGV2KTsKIAorI2lmZGVmIERFVl9ORVRNQVAKKwluZXRtYXBfZW5hYmxlX2Fs
bF9yaW5ncyhhZGFwdGVyLT5uZXRkZXYpOworI2VuZGlmIC8qIERFVl9ORVRNQVAgKi8KKwogCS8q
IGZpcmUgYSBsaW5rIGNoYW5nZSBpbnRlcnJ1cHQgdG8gc3RhcnQgdGhlIHdhdGNoZG9nICovCiAJ
aWYgKGFkYXB0ZXItPm1zaXhfZW50cmllcykKIAkJZXczMihJQ1MsIEUxMDAwX0lDU19MU0MgfCBF
MTAwMF9JQ1JfT1RIRVIpOwo=
--f46d040fa1d01b4c210517245007--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAO0mX5YqvTdtZAGAcjfJ%2BEOwGvDQLhtmFQ%2BVK%2BYGPjLO-tAefg>