Bug 1653491

Summary: [Hyper-V] uio_hv_generic driver in 29 kernel not the 4.19 upstream version
Product: [Fedora] Fedora Reporter: Joshua R. Poulson <jopoulso>
Component: kernelAssignee: Kernel Maintainer List <kernel-maint>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 29CC: airlied, alekcejk, bskeggs, ewk, hdegoede, ichavero, itamar, jarodwilson, jglisse, john.j5live, jonathan, jopoulso, josef, kernel-maint, labbott, linville, mchehab, mjg59, mmorsy, steved, vkuznets
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-04-09 20:13:15 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Joshua R. Poulson 2018-11-27 00:40:17 UTC
Description of problem:
I am testing DPDK on Fedora. Actually, the purpose is to get VPP changes for netvsc poll-mode-driver into upstream; and Redhat is one of the VPP auto build targets.
Testing on VPP with DPDK on Fedora 29, it looks like they have an old version of the UIO driver for Hyper-V.  If I use it, it crashes in uio_vma_fault function. uio_vma_fault existed in an earlier version but was removed in later version that is in upstream 4.19.
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/uio/uio_hv_generic.c?h=v4.19.4

Version-Release number of selected component (if applicable):
FC29 4.19.2-200.fc28.x86_64

How reproducible:
Always

Steps to Reproduce:
1. Use VPP with DPDK under Hyper-V

Actual results:
Crashes in uio_vma_fault

Expected results:
Works with upstream 4.19 kernel

Additional info:
Looks like a missed file pulling from upstream

Comment 2 Vitaly Kuznetsov 2018-11-27 13:44:00 UTC
It seems the function is still there in UIO core:

$ git grep uio_vma_fault v4.19
v4.19:drivers/uio/uio.c:static vm_fault_t uio_vma_fault(struct vm_fault *vmf)
v4.19:drivers/uio/uio.c:        .fault = uio_vma_fault,

(and still there as of v4.20-rc4). I, however, have no idea if it should be called or not from uio-hv-generic.

CC: Mohammed, are you seeing something similar in your testing?

Comment 3 Mohammed Gamal 2018-12-03 14:50:35 UTC
(In reply to Vitaly Kuznetsov from comment #2)
> It seems the function is still there in UIO core:
> 
> $ git grep uio_vma_fault v4.19
> v4.19:drivers/uio/uio.c:static vm_fault_t uio_vma_fault(struct vm_fault *vmf)
> v4.19:drivers/uio/uio.c:        .fault = uio_vma_fault,
> 
> (and still there as of v4.20-rc4). I, however, have no idea if it should be
> called or not from uio-hv-generic.
> 
> CC: Mohammed, are you seeing something similar in your testing?

I am testing with both RHEL 8 beta (4.18) and upstream and I didn't see any of these issues

Comment 4 Mohammed Gamal 2018-12-03 14:52:35 UTC
(In reply to Mohammed Gamal from comment #3)
> (In reply to Vitaly Kuznetsov from comment #2)
> > It seems the function is still there in UIO core:
> > 
> > $ git grep uio_vma_fault v4.19
> > v4.19:drivers/uio/uio.c:static vm_fault_t uio_vma_fault(struct vm_fault *vmf)
> > v4.19:drivers/uio/uio.c:        .fault = uio_vma_fault,
> > 
> > (and still there as of v4.20-rc4). I, however, have no idea if it should be
> > called or not from uio-hv-generic.
> > 
> > CC: Mohammed, are you seeing something similar in your testing?
> 
> I am testing with both RHEL 8 beta (4.18) and upstream and I didn't see any
> of these issues

That said, I was only testing multi queue support for the netvsc PMD. I actually don't even know what VPP is.

@Joshua:
Any pointers on what VPP is and how to test it?

Comment 5 Laura Abbott 2019-04-09 20:13:15 UTC
We were never out of sync to begin with and we've long since updated the kernel versions. I'm going to close this. Feel free to reopen if there's still a problem.