View Issue Details

IDProjectCategoryView StatusLast Update
0000688channel: elrepo/el7--elrepo--request-for-enhancement--public2017-10-02 23:59
Reporterjcpunk Assigned Totoracat  
PrioritynormalSeverityfeatureReproducibilityN/A
Status resolvedResolutionfixed 
Summary0000688: [RFE] spec-sw/wr-nic
DescriptionThe Simple PCIe FMC carrier (SPEC) is GPL source for an Open Hardware Project FMC bus - in particular the White Rabbit hardware timing system (http://www.ohwr.org/projects/white-rabbit/wiki).

White Rabbit itself is being evaluated for a number of large scale Scientific projects as well as use in a number of timing sensitive operations (CERN Injector Chain, KM3NeT).

http://www.ohwr.org/projects/white-rabbit/wiki/FAQwr
Additional InformationGPIO support appears to be enabled in the 7.3 kernel. GPIO support appears to be necessary for some functions.

Source at: http://www.ohwr.org/projects/spec-sw/repository

It looks like the 'kernel' and 'tools' directories are the ones that matter for the kmod and userspace commands. It appears to want access to the FMC headers for module linkage.

White Rabbit wiki listing ELRepo for kernel source on EL6 systems -> http://www.ohwr.org/projects/wr-starting-kit/wiki/FAQ#The-starting-kit-is-based-on-Ubuntu-How-can-I-use-it-with-Scientific-Linux
TagsNo tags attached.
Attached Files
Reported upstream

Activities

jcpunk

2016-11-16 14:08

reporter   ~0004930

Forgot to list the .ko files:
spec.ko
wr-nic.ko

jcpunk

2017-01-11 12:24

reporter   ~0005038

Uploaded a potentially viable source rpm.

There are unrelated issues with fmc-bus in the kernel itself that will prevent this from compiling today. I'm hopeful to get those fixed (soon?)

toracat

2017-01-11 12:37

administrator   ~0005039

Thanks for the submission. Not that we had forgotten about it but could not figure out exactly what to do. ;-)

jcpunk

2017-01-11 12:44

reporter   ~0005040

No worries, as it is until they rebase FMC at kernel.org (and we rebase the kmod here) this does not build.

I've got the patches for FMC, but would rather not patch anything that we can get from kernel.org.

jcpunk

2017-01-11 14:49

reporter   ~0005042

Did a quick check on the ABI warnings:

********************************************************************************
*********************** KERNEL ABI COMPATIBILITY WARNING ***********************
********************************************************************************
The following kernel symbols are not guaranteed to remain compatible with
future kernel updates to this RHEL release:

    __dynamic_pr_debug
    __fentry__
    __stack_chk_fail
    release_firmware
    request_firmware
    wait_for_completion_timeout
    warn_slowpath_fmt


None of these have changed signatures in el7 thus far

jcpunk

2017-06-29 14:33

reporter   ~0005294

While this is still blocked on FMC bus changes (I'm getting closer) It may be worth also packaging up http://www.ohwr.org/projects/svec-sw at the same time.

jcpunk

2017-08-28 09:20

reporter   ~0005424

I just attached:

spec-sw-kmod-0.0-2014.02.0.geb9b9d0.1.el7.src.rpm
svec-sw-kmod-0.0-2015.05.0.gf34a4cb.1.el7.src.rpm
etherbone-core-2.1.0-1.el7.src.rpm

Which should provide most of the White Rabbit functionality in conjunction with the updated FMC from https://elrepo.org/bugs/view.php?id=775

jcpunk

2017-08-28 09:22

reporter   ~0005425

I've also got a SRPM for fmc-fine-delay-kmod-0.0-2.0.4.0.gf76a08b.1.el7.src.rpm, however, it is over the file upload limit....

So I've posted it up at http://ftp.scientificlinux.org/linux/scientific/7rolling/testing/SRPMS/fmc-fine-delay-kmod-0.0-2.0.4.0.gf76a08b.1.el7.src.rpm

toracat

2017-08-29 00:49

administrator   ~0005438

etherbone-core built fine (after 'git' was added to BuildRequires).

spec-sw-kmod produced the following error:

/data/rpmbuild/elrepo/fmc688/BUILD/spec-sw-0.0/kernel/wr_nic/nic-core.c: In function 'wrn_start_xmit':
/data/rpmbuild/elrepo/fmc688/BUILD/spec-sw-0.0/kernel/wr_nic/nic-core.c:212:5: error: 'struct net_device' has no member named 'trans_start'
  dev->trans_start = jiffies;
     ^
make[2]: *** [/data/rpmbuild/elrepo/fmc688/BUILD/spec-sw-0.0/kernel/wr_nic/nic-core.o] Error 1
make[1]: *** [_module_/data/rpmbuild/elrepo/fmc688/BUILD/spec-sw-0.0/kernel] Error 2
make[1]: Leaving directory `/usr/src/kernels/3.10.0-693.el7.x86_64'
make: *** [all] Error 2

jcpunk

2017-08-29 07:22

reporter   ~0005439

hmmmmm I'll look into that one....

jcpunk

2017-08-29 08:37

reporter   ~0005441

This patch appears to fix the issue (pulled from upstream git repo https://www.ohwr.org/projects/spec-sw/repository/revision/7499f529154f46f18483726e5de334f7b8c6f416 ).

I've also added yetanother WhiteRabbit driver source rpm to the ticket.

###
diff --git a/kernel/wr_nic/nic-core.c b/kernel/wr_nic/nic-core.c
index 20794cd..b54005e 100644
--- a/kernel/wr_nic/nic-core.c
+++ b/kernel/wr_nic/nic-core.c
@@ -209,7 +209,7 @@ static int wrn_start_xmit(struct sk_buff *skb, struct net_device *dev)
     /* We are done, this is trivial maiintainance*/
     ep->stats.tx_packets++;
     ep->stats.tx_bytes += len;
- dev->trans_start = jiffies;
+ netif_trans_update(dev);
 
     //spin_unlock_irqrestore(&ep->lock, flags);
     return 0;

toracat

2017-08-29 11:25

administrator   ~0005442

After that fix, I got the following error:

makeinfo --html --no-split -o spec-sw.html spec-sw.texi
spec-sw.texi:55: @paragraphindent arg must be numeric/`none'/`asis', not `3mm'
make: *** [spec-sw.info] Error 1

Then found a fix:

https://www.ohwr.org/projects/spec-sw/repository/revisions/e84a063d7aea5f30e463cc384366487ff5a5d53b/diff

toracat

2017-08-29 11:54

administrator   ~0005443

To build fmc-fine-delay-kmod, I need to rebuild zio against the 7.4 kernel because its header package is Required.

toracat

2017-08-29 17:48

administrator   ~0005444

fmc-tdc-kmod BuildRequires doxygen.

toracat

2017-08-29 18:02

administrator   ~0005445

The following packages have been released to the elrepo-tesing repository.

x86_64:
etherbone-core-2.1.0-1.el7.elrepo.x86_64.rpm
etherbone-core-debuginfo-2.1.0-1.el7.elrepo.x86_64.rpm
fmc-fine-delay-kmod-headers-0.0-2.0.4.0.gf76a08b.1.el7.elrepo.x86_64.rpm
fmc-fine-delay-kmod-tools-0.0-2.0.4.0.gf76a08b.1.el7.elrepo.x86_64.rpm
fmc-kmod-headers-0.1-2017.06.1.el7.elrepo.x86_64.rpm
fmc-kmod-tools-0.1-2017.06.1.el7.elrepo.x86_64.rpm
fmc-tdc-kmod-headers-0.0-2015.05.0.g461182b.1.el7.elrepo.x86_64.rpm
fmc-tdc-kmod-tools-0.0-2015.05.0.g461182b.1.el7.elrepo.x86_64.rpm
kmod-fmc-0.1-2017.06.1.el7.elrepo.x86_64.rpm
kmod-fmc-fine-delay-0.0-2.0.4.0.gf76a08b.1.el7.elrepo.x86_64.rpm
kmod-fmc-tdc-0.0-2015.05.0.g461182b.1.el7.elrepo.x86_64.rpm
kmod-spec-sw-0.0-2014.02.0.geb9b9d0.1.el7.elrepo.x86_64.rpm
kmod-svec-sw-0.0-2015.05.0.gf34a4cb.1.el7.elrepo.x86_64.rpm
kmod-zio-0.1-1.2.0.g3d9cee9.5.el7.elrepo.x86_64.rpm
spec-sw-kmod-headers-0.0-2014.02.0.geb9b9d0.1.el7.elrepo.x86_64.rpm
spec-sw-kmod-tools-0.0-2014.02.0.geb9b9d0.1.el7.elrepo.x86_64.rpm
svec-sw-kmod-headers-0.0-2015.05.0.gf34a4cb.1.el7.elrepo.x86_64.rpm
svec-sw-kmod-tools-0.0-2015.05.0.gf34a4cb.1.el7.elrepo.x86_64.rpm
zio-kmod-headers-0.1-1.2.0.g3d9cee9.5.el7.elrepo.x86_64.rpm
zio-kmod-tools-0.1-1.2.0.g3d9cee9.5.el7.elrepo.x86_64.rpm
etherbone-core-2.1.0-1.el7.elrepo.src.rpm

srpms:
fmc-fine-delay-kmod-0.0-2.0.4.0.gf76a08b.1.el7.elrepo.src.rpm
fmc-kmod-0.1-2017.06.1.el7.elrepo.src.rpm
fmc-tdc-kmod-0.0-2015.05.0.g461182b.1.el7.elrepo.src.rpm
repodata
spec-sw-kmod-0.0-2014.02.0.geb9b9d0.1.el7.elrepo.src.rpm
svec-sw-kmod-0.0-2015.05.0.gf34a4cb.1.el7.elrepo.src.rpm
zio-kmod-0.1-1.2.0.g3d9cee9.5.el7.elrepo.src.rpm

jcpunk

2017-08-30 08:01

reporter   ~0005447

hmmmmm I seem to be getting the following error with fmc_tdc.ko and fmc_fine_delay.ko

[ 446.460465] module: overflow in relocation type 10 val ffffffffc06778c8
[ 446.460688] module: `fmc_tdc' likely not compiled with -mcmodel=kernel
[ 457.946408] module: overflow in relocation type 10 val ffffffffc0685d98
[ 457.946569] module: `fmc_fine_delay' likely not compiled with -mcmodel=kernel

I've never seen this before.... any ideas?

toracat

2017-08-30 16:52

administrator   ~0005448

I have no idea. I was able to reproduce the error on our test system.

Should I try adding "-mcmodel=kernel" to CFLAG ?? It might not be that simple though.

jcpunk

2017-08-31 13:39

reporter   ~0005451

Seems like that might do the trick...

I'm still trying to figure out why my mock root doesn't have this behavior....

toracat

2017-08-31 14:03

administrator   ~0005452

So, when you build the same package on your system, it does not have this issue?

jcpunk

2017-08-31 15:32

reporter   ~0005453

Correct, I've got a mock root I've been testing in. But there may be something weird in there unrelated to this...

The Makefile should be calling out to Kbuild to get rational CFLAGS....

jcpunk

2017-09-01 07:27

reporter   ~0005454

It appears that glue.o and access.o from fmc-kmod are somehow the cause....

as to why, that I've no clue...

I archived off my buildroot and in a fresh one I'm getting the exact same errors.

jcpunk

2017-09-01 08:51

reporter   ~0005455

I've uploaded a new fmc-kmod that seems to provide the needed objects in the right format.

The fmc-tdc and fmc-fine-delay spec files need an adjustment like the following patch[1].

Pat

[1]
--- fmc-tdc-kmod.spec.orig 2017-09-01 09:43:18.459618996 -0500
+++ fmc-tdc-kmod.spec 2017-09-01 09:44:53.232354457 -0500
@@ -85,10 +85,6 @@ EOF
 
 %patch1 -p1
 
-pushd kernel
-%{__cp} %{_libdir}/libsdbfs/access.o .
-%{__cp} %{_libdir}/libsdbfs/glue.o .
-popd
 
 
 %build
@@ -104,6 +100,8 @@ source ${ZIO_HEADERS}/zio-version-env
 source ${SPEC_HEADERS}/spec-sw-version-env
 
 pushd kernel
+%{__cp} ${FMC_HEADERS}/access.o .
+%{__cp} ${FMC_HEADERS}/glue.o .
 %{__make} LINUX="${KSRC}" FMC_BUS=${FMC_HEADERS} FMC_BUS_VERSION=${FMC_BUS_VERSION} ZIO=${ZIO_HEADERS} ZIO_VERSION=${ZIO_VERSION} SPEC_SW=${SPEC_HEADERS} SPEC_SW_VERSION=${SPEC_SW_VERSION}
 popd

toracat

2017-09-01 09:19

administrator   ~0005456

I was just looking at those line. :)

Will try your patch here.

toracat

2017-09-01 12:05

administrator   ~0005458

The revised version of the fmc-kmod, fmc-tdc and fmc-fine-delay packages will show up in the elrepo-testing repository soon. The version tag has a "2.el7.elrepo" instead of "1.el7.elrepo".

toracat

2017-09-01 15:16

administrator   ~0005459

No luck. Still the same error.

jcpunk

2017-09-11 12:51

reporter   ~0005477

I'm still looking into this.... In the process I noticed that kmod-svec-sw-0.0-2015.05.0.gf34a4cb.1.el7.elrepo seems to not have the right Requires for ksym(fmc etc)

jcpunk

2017-09-11 12:59

reporter   ~0005478

Other than the errors with kmod-svec I'm show the ability to modprobe :

kmod-fmc-0.1-2017.06.2.el7.elrepo.x86_64
kmod-fmc-fine-delay-0.0-2.0.4.0.gf76a08b.2.el7.elrepo.x86_64
kmod-fmc-tdc-0.0-2015.05.0.g461182b.2.el7.elrepo.x86_64
kmod-spec-sw-0.0-2014.02.0.geb9b9d0.1.el7.elrepo.x86_64
kmod-zio-0.1-1.2.0.g3d9cee9.5.el7.elrepo.x86_64

on the 7.4 kernel.

jcpunk

2017-09-29 08:45

reporter   ~0005519

Just checking back in on a rebuild of kmod-svec-sw-0.0-2015.05.0.gf34a4cb.1.el7.elrepo

toracat

2017-09-29 09:12

administrator   ~0005520

Sorry, I thought I was waiting on your move. :) Will look into it shortly.

toracat

2017-09-29 14:52

administrator   ~0005521

With kmod-svec-sw, I see:

ksym(fmc_device_register_n_gw) = 0xc49e3398
ksym(fmc_device_unregister_n) = 0x00000000
ksym(fmc_find_sdb_device) = 0x00000000
ksym(fmc_free_sdb_tree) = 0x00000000
ksym(fmc_scan_sdb_tree) = 0x00000000
ksym(fmc_show_sdb_tree) = 0x00000000
ksym(vme_find_mapping) = 0x00000000
ksym(vme_free_irq) = 0x00000000
ksym(vme_register_driver) = 0x00000000
ksym(vme_release_mapping) = 0x00000000
ksym(vme_request_irq) = 0x00000000
ksym(vme_unregister_driver) = 0x00000000

Then I noticed in the source tarfile of kmod-svec-sw, there are :

1074 Jul 5 11:20 kernel/Module.symvers.fmc
2059 Jul 5 11:20 kernel/Module.symvers.vme

The contents are all like this:

0x00000000 fmc_device_unregister /nfs/cs-ccr-nfsdev/vol1/u1/dcobas/cage/fmc/fmc-bus/kernel/fmc EXPORT_SYMBOL
0x00000000 fmc_find_sdb_device /nfs/cs-ccr-nfsdev/vol1/u1/dcobas/cage/fmc/fmc-bus/kernel/fmc EXPORT_SYMBOL

Wonder if they are causing the problem. There were no such files in kmod-spec-sw.

jcpunk

2017-09-29 14:56

reporter   ~0005522

yeah, those look fishy.... I'd remove those two Module.symvers files

toracat

2017-09-29 14:59

administrator   ~0005523

I removed those two files and the resulting rpm looks "okay".

$ rpm -qpR kmod-svec-sw-0.0-2015.05.0.gf34a4cb.1.el7.x86_64.rpm | grep ksym
ksym(fmc_device_register_n_gw) = 0xc49e3398
ksym(fmc_device_unregister_n) = 0x1183963d
ksym(fmc_find_sdb_device) = 0xb71dd84e
ksym(fmc_free_sdb_tree) = 0x98ae4ed9
ksym(fmc_scan_sdb_tree) = 0x30ee5653
ksym(fmc_show_sdb_tree) = 0xab92aee2

toracat

2017-09-29 15:21

administrator   ~0005524

The following packages have been released to the testing repo (syncing to mirrors):

kmod-svec-sw-0.0-2015.05.0.gf34a4cb.1.el7.elrepo.x86_64.rpm
svec-sw-kmod-headers-0.0-2015.05.0.gf34a4cb.1.el7.elrepo.x86_64.rpm
svec-sw-kmod-tools-0.0-2015.05.0.gf34a4cb.1.el7.elrepo.x86_64.rpm
svec-sw-kmod-0.0-2015.05.0.gf34a4cb.1.el7.elrepo.src.rpm

jcpunk

2017-10-02 08:54

reporter   ~0005532

i believe this most recent build works as expected. I'd say these are safe to publish.

toracat

2017-10-02 10:12

administrator   ~0005533

All packages moved to the main repo.

Issue History

Date Modified Username Field Change
2016-11-16 14:05 jcpunk New Issue
2016-11-16 14:05 jcpunk Status new => assigned
2016-11-16 14:05 jcpunk Assigned To => toracat
2016-11-16 14:08 jcpunk Note Added: 0004930
2017-01-11 12:23 jcpunk File Added: spec-sw-kmod-2014.02-74.g5f15d26.1.el7.src.rpm
2017-01-11 12:24 jcpunk Note Added: 0005038
2017-01-11 12:37 toracat Note Added: 0005039
2017-01-11 12:44 jcpunk Note Added: 0005040
2017-01-11 14:49 jcpunk Note Added: 0005042
2017-06-29 14:33 jcpunk Note Added: 0005294
2017-08-28 09:19 jcpunk File Added: svec-sw-kmod-0.0-2015.05.0.gf34a4cb.1.el7.src.rpm
2017-08-28 09:19 jcpunk File Added: spec-sw-kmod-0.0-2014.02.0.geb9b9d0.1.el7.src.rpm
2017-08-28 09:19 jcpunk File Added: etherbone-core-2.1.0-1.el7.src.rpm
2017-08-28 09:20 jcpunk Note Added: 0005424
2017-08-28 09:22 jcpunk Note Added: 0005425
2017-08-29 00:49 toracat Note Added: 0005438
2017-08-29 07:22 jcpunk Note Added: 0005439
2017-08-29 08:28 jcpunk File Added: fmc-tdc-kmod-0.0-2015.05.0.g461182b.1.el7.src.rpm
2017-08-29 08:37 jcpunk Note Added: 0005441
2017-08-29 11:25 toracat Note Added: 0005442
2017-08-29 11:54 toracat Note Added: 0005443
2017-08-29 17:48 toracat Note Added: 0005444
2017-08-29 18:02 toracat Note Added: 0005445
2017-08-30 08:01 jcpunk Note Added: 0005447
2017-08-30 16:52 toracat Note Added: 0005448
2017-08-31 13:39 jcpunk Note Added: 0005451
2017-08-31 14:03 toracat Note Added: 0005452
2017-08-31 15:32 jcpunk Note Added: 0005453
2017-09-01 07:27 jcpunk Note Added: 0005454
2017-09-01 08:42 jcpunk File Added: fmc-kmod-0.1-2017.06.2.el7.src.rpm
2017-09-01 08:51 jcpunk Note Added: 0005455
2017-09-01 09:19 toracat Note Added: 0005456
2017-09-01 12:05 toracat Note Added: 0005458
2017-09-01 15:16 toracat Note Added: 0005459
2017-09-11 12:51 jcpunk Note Added: 0005477
2017-09-11 12:59 jcpunk Note Added: 0005478
2017-09-29 08:45 jcpunk Note Added: 0005519
2017-09-29 09:12 toracat Note Added: 0005520
2017-09-29 14:52 toracat Note Added: 0005521
2017-09-29 14:56 jcpunk Note Added: 0005522
2017-09-29 14:59 toracat Note Added: 0005523
2017-09-29 15:21 toracat Note Added: 0005524
2017-10-02 08:54 jcpunk Note Added: 0005532
2017-10-02 10:12 toracat Note Added: 0005533
2017-10-02 23:59 toracat Status assigned => resolved
2017-10-02 23:59 toracat Resolution open => fixed