From: Thomas Monjalon <thomas.monjalon-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
To: Jincheng Miao <jmiao-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: dev-VfR2kkLFssw@public.gmane.org
Subject: Re: [PATCH v2 1/2] igb_uio: compatible with upstream longterm kernel and RHEL6
Date: Fri, 28 Nov 2014 17:42:48 +0100 [thread overview]
Message-ID: <3179225.WT7VCi68g0@xps13> (raw)
In-Reply-To: <54782EB5.7060409-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-11-28 16:13, Jincheng Miao:
>
> On 11/28/2014 01:01 AM, Thomas Monjalon wrote:
> > 2014-10-31 15:37, Jincheng Miao:
> >> Function pci_num_vf() is introduced from upstream linux-2.6.34. So
> >> this patch make compatible with longterm kernel linux-2.6.32.63.
> >>
> >> For RHEL6's kernel, although it is based on linux-2.6.32, it has
> >> pci_num_vf() implementation. As the same with commit 11ba0426,
> >> pci_num_vf() is defined from RHEL6. So we should check the macro
> >> RHEL_RELEASE_CODE to consider this situation.
> >
> > Please, could you explain in which case CONFIG_PCI_IOV is defined?
> > The logic is a bit difficult to understand.
>
> Yep, there is a little confusion for pci_num_vf():
> 1. it is available when CONFIG_PCI_IOV is defined.
> 2. it is introduced from upstream kernel v2.6.34 (fb8a0d9)
> 3. it is implemented from RHEL6.0, although the kernel version is 2.6.32.
Sorry, you didn't described when CONFIG_PCI_IOV is defined.
Is it defined since 2.6.34 upstream? In lower stable versions?
Is it defined since RHEL 6.0?
Why checking CONFIG_PCI_IOV is not sufficient?
When pci_num_vf will be backported in other distributions, we will have to
tune this check and clearly understand what was the situation.
> The logic of this patch is:
> #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 34) && \
> (!(defined(RHEL_RELEASE_CODE) && RHEL_RELEASE_CODE >=
> RHEL_RELEASE_VERSION(6, 0) && defined(CONFIG_PCI_IOV)))
>
> Firstly it detects kernel version, if it is less than 2.6.34, and it is
> not RHEL-specified, then define pci_num_vf().
>
> Secondly, it deals with RHEL-specified. If it is RHEL6.0 or later, and
> CONFIG_PCI_IOV is defined. we should not define pci_num_vf(). If any of
> these conditions is not reached, pci_num_vf() should be defined.
I can read the check but I don't know why CONFIG_PCI_IOV is checked in the
RHEL case.
> Some days ago, I setup dpdk for longterm kernel 2.6.32.63, and got error:
> ```
> CC [M]
> /root/dpdk-source/build/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.o
> /root/dpdk-source/build/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.c:
> In function ‘show_max_vfs’:
> /root/dpdk-source/build/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.c:75:
> error: implicit declaration of function ‘pci_num_vf’
> ```
Thank you. Describing the problem is helpful for the commit log.
> This problem is introduced by commit 11ba04265
>
> commit 11ba04265cfd2a53c12c030fcaa5dfe7eed39a42
> Author: Guillaume Gaudonville <guillaume.gaudonville-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
> Date: Wed Sep 3 10:18:23 2014 +0200
>
> igb_uio: fix build on RHEL 6.3
>
> - pci_num_vf() is already defined in RHEL 6
> - pci_intx_mask_supported is already defined in RHEL 6.3
> - pci_check_and_mask_intx is already defined in RHEL 6.3
>
> Signed-off-by: Guillaume Gaudonville <guillaume.gaudonville-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
> Signed-off-by: David Marchand <david.marchand-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
> Signed-off-by: Thomas Monjalon <thomas.monjalon-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
>
> +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 34) && \
> + !defined(CONFIG_PCI_IOV)
>
> That is because longterm kernel 2.6.32.63 defined CONFIG_PCI_IOV, but it
> lacks pci_num_vf(),
> after above processing, pci_num_vf() is still not existed, then build fail.
>
> My patch could work around it, and can deal with RHEL-specified kernel.
Thanks, we just need to understand the matrix of combinations to be sure
it will be well maintained.
--
Thomas
next prev parent reply other threads:[~2014-11-28 16:42 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-31 7:37 [PATCH v2 0/2] compatibility fallback and replacement of kernel function invoking Jincheng Miao
[not found] ` <1414741039-3531-1-git-send-email-jmiao-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-10-31 7:37 ` [PATCH v2 1/2] igb_uio: compatible with upstream longterm kernel and RHEL6 Jincheng Miao
[not found] ` <1414741039-3531-2-git-send-email-jmiao-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-11-27 17:01 ` Thomas Monjalon
2014-11-28 8:13 ` Jincheng Miao
[not found] ` <54782EB5.7060409-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-11-28 16:42 ` Thomas Monjalon [this message]
2014-12-02 4:01 ` Jincheng Miao
2014-10-31 7:37 ` [PATCH v2 2/2] eal: replace strict_strtoul with kstrtoul Jincheng Miao
[not found] ` <1414741039-3531-3-git-send-email-jmiao-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-11-28 16:45 ` Thomas Monjalon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3179225.WT7VCi68g0@xps13 \
--to=thomas.monjalon-pdr9zngts4eavxtiumwx3w@public.gmane.org \
--cc=dev-VfR2kkLFssw@public.gmane.org \
--cc=jmiao-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.