From: kbuild test robot <lkp@intel.com>
To: Vivek Goyal <vgoyal@redhat.com>
Cc: kbuild-all@01.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
vgoyal@redhat.com, miklos@szeredi.hu, stefanha@redhat.com,
dgilbert@redhat.com, sweil@redhat.com, swhiteho@redhat.com
Subject: Re: [PATCH 15/52] fuse: map virtio_fs DAX window BAR
Date: Fri, 14 Dec 2018 00:06:36 +0800 [thread overview]
Message-ID: <201812140034.LnsOOypS%fengguang.wu@intel.com> (raw)
In-Reply-To: <20181210171318.16998-16-vgoyal@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 6404 bytes --]
Hi Stefan,
I love your patch! Yet something to improve:
[auto build test ERROR on fuse/for-next]
[also build test ERROR on v4.20-rc6]
[cannot apply to next-20181213]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Vivek-Goyal/virtio-fs-shared-file-system-for-virtual-machines/20181211-103034
base: https://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git for-next
config: sh-allmodconfig (attached as .config)
compiler: sh4-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
GCC_VERSION=7.2.0 make.cross ARCH=sh
All errors (new ones prefixed by >>):
fs/fuse/virtio_fs.c: In function 'virtio_fs_setup_dax':
>> fs/fuse/virtio_fs.c:465:8: error: implicit declaration of function 'pcim_enable_device'; did you mean 'pci_enable_device'? [-Werror=implicit-function-declaration]
ret = pcim_enable_device(pci_dev);
^~~~~~~~~~~~~~~~~~
pci_enable_device
>> fs/fuse/virtio_fs.c:470:8: error: implicit declaration of function 'pci_request_region'; did you mean 'pci_request_regions'? [-Werror=implicit-function-declaration]
ret = pci_request_region(pci_dev, VIRTIO_FS_WINDOW_BAR,
^~~~~~~~~~~~~~~~~~
pci_request_regions
In file included from include/linux/printk.h:336:0,
from include/linux/kernel.h:14,
from include/linux/list.h:9,
from include/linux/wait.h:7,
from include/linux/wait_bit.h:8,
from include/linux/fs.h:6,
from fs/fuse/virtio_fs.c:7:
fs/fuse/virtio_fs.c:528:22: warning: format '%llx' expects argument of type 'long long unsigned int', but argument 6 has type 'phys_addr_t {aka unsigned int}' [-Wformat=]
dev_dbg(&vdev->dev, "%s: window kaddr 0x%px phys_addr 0x%llx len %zu\n",
^
include/linux/dynamic_debug.h:135:39: note: in definition of macro 'dynamic_dev_dbg'
__dynamic_dev_dbg(&descriptor, dev, fmt, \
^~~
include/linux/device.h:1463:23: note: in expansion of macro 'dev_fmt'
dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
^~~~~~~
fs/fuse/virtio_fs.c:528:2: note: in expansion of macro 'dev_dbg'
dev_dbg(&vdev->dev, "%s: window kaddr 0x%px phys_addr 0x%llx len %zu\n",
^~~~~~~
At top level:
fs/fuse/virtio_fs.c:604:12: warning: 'virtio_fs_restore' defined but not used [-Wunused-function]
static int virtio_fs_restore(struct virtio_device *vdev)
^~~~~~~~~~~~~~~~~
fs/fuse/virtio_fs.c:599:12: warning: 'virtio_fs_freeze' defined but not used [-Wunused-function]
static int virtio_fs_freeze(struct virtio_device *vdev)
^~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +465 fs/fuse/virtio_fs.c
445
446 static int virtio_fs_setup_dax(struct virtio_device *vdev, struct virtio_fs *fs)
447 {
448 struct virtio_fs_memremap_info *mi;
449 struct dev_pagemap *pgmap;
450 struct pci_dev *pci_dev;
451 phys_addr_t phys_addr;
452 size_t len;
453 int ret;
454
455 if (!IS_ENABLED(CONFIG_DAX_DRIVER))
456 return 0;
457
458 /* HACK implement VIRTIO shared memory regions instead of
459 * directly accessing the PCI BAR from a virtio device driver.
460 */
461 pci_dev = container_of(vdev->dev.parent, struct pci_dev, dev);
462
463 /* TODO Is this safe - the virtio_pci_* driver doesn't use managed
464 * device APIs? */
> 465 ret = pcim_enable_device(pci_dev);
466 if (ret < 0)
467 return ret;
468
469 /* TODO handle case where device doesn't expose BAR? */
> 470 ret = pci_request_region(pci_dev, VIRTIO_FS_WINDOW_BAR,
471 "virtio-fs-window");
472 if (ret < 0) {
473 dev_err(&vdev->dev, "%s: failed to request window BAR\n",
474 __func__);
475 return ret;
476 }
477
478 phys_addr = pci_resource_start(pci_dev, VIRTIO_FS_WINDOW_BAR);
479 len = pci_resource_len(pci_dev, VIRTIO_FS_WINDOW_BAR);
480
481 mi = devm_kzalloc(&pci_dev->dev, sizeof(*mi), GFP_KERNEL);
482 if (!mi)
483 return -ENOMEM;
484
485 init_completion(&mi->completion);
486 ret = percpu_ref_init(&mi->ref, virtio_fs_percpu_release, 0,
487 GFP_KERNEL);
488 if (ret < 0) {
489 dev_err(&vdev->dev, "%s: percpu_ref_init failed (%d)\n",
490 __func__, ret);
491 return ret;
492 }
493
494 ret = devm_add_action(&pci_dev->dev, virtio_fs_percpu_exit, mi);
495 if (ret < 0) {
496 percpu_ref_exit(&mi->ref);
497 return ret;
498 }
499
500 pgmap = &mi->pgmap;
501 pgmap->altmap_valid = false;
502 pgmap->ref = &mi->ref;
503 pgmap->type = MEMORY_DEVICE_FS_DAX;
504
505 /* Ideally we would directly use the PCI BAR resource but
506 * devm_memremap_pages() wants its own copy in pgmap. So
507 * initialize a struct resource from scratch (only the start
508 * and end fields will be used).
509 */
510 pgmap->res = (struct resource){
511 .name = "virtio-fs dax window",
512 .start = phys_addr,
513 .end = phys_addr + len,
514 };
515
516 fs->window_kaddr = devm_memremap_pages(&pci_dev->dev, pgmap);
517 if (IS_ERR(fs->window_kaddr))
518 return PTR_ERR(fs->window_kaddr);
519
520 ret = devm_add_action_or_reset(&pci_dev->dev, virtio_fs_percpu_kill,
521 &mi->ref);
522 if (ret < 0)
523 return ret;
524
525 fs->window_phys_addr = phys_addr;
526 fs->window_len = len;
527
528 dev_dbg(&vdev->dev, "%s: window kaddr 0x%px phys_addr 0x%llx len %zu\n",
529 __func__, fs->window_kaddr, phys_addr, len);
530
531 fs->dax_dev = alloc_dax(fs, NULL, &virtio_fs_dax_ops);
532 if (!fs->dax_dev)
533 return -ENOMEM;
534
535 return devm_add_action_or_reset(&vdev->dev, virtio_fs_cleanup_dax, fs);
536 }
537
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 50398 bytes --]
next prev parent reply other threads:[~2018-12-13 16:07 UTC|newest]
Thread overview: 98+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-10 17:12 [PATCH 00/52] [RFC] virtio-fs: shared file system for virtual machines Vivek Goyal
2018-12-10 17:12 ` [PATCH 01/52] fuse: add skeleton virtio_fs.ko module Vivek Goyal
2018-12-10 17:12 ` [PATCH 02/52] fuse: add probe/remove virtio driver Vivek Goyal
2018-12-10 17:12 ` [PATCH 03/52] fuse: rely on mutex_unlock() barrier instead of fput() Vivek Goyal
2018-12-10 17:12 ` [PATCH 04/52] fuse: extract fuse_fill_super_common() Vivek Goyal
2018-12-10 17:12 ` [PATCH 05/52] virtio_fs: get mount working Vivek Goyal
2018-12-10 17:12 ` [PATCH 06/52] fuse: export fuse_end_request() Vivek Goyal
2018-12-10 17:12 ` [PATCH 07/52] fuse: export fuse_len_args() Vivek Goyal
2018-12-10 17:12 ` [PATCH 08/52] fuse: add fuse_iqueue_ops callbacks Vivek Goyal
2018-12-10 17:12 ` [PATCH 09/52] fuse: process requests queues Vivek Goyal
2018-12-10 17:12 ` [PATCH 10/52] fuse: export fuse_get_unique() Vivek Goyal
2018-12-10 17:12 ` [PATCH 11/52] fuse: implement FUSE_FORGET for virtio-fs Vivek Goyal
2018-12-10 17:12 ` [PATCH 12/52] virtio_fs: Set up dax_device Vivek Goyal
2018-12-10 17:12 ` [PATCH 13/52] dax: remove block device dependencies Vivek Goyal
2018-12-10 17:12 ` [PATCH 14/52] fuse: add fuse_conn->dax_dev field Vivek Goyal
2018-12-10 17:12 ` [PATCH 15/52] fuse: map virtio_fs DAX window BAR Vivek Goyal
2018-12-12 16:37 ` Christian Borntraeger
2018-12-13 11:55 ` Stefan Hajnoczi
2018-12-13 16:06 ` kbuild test robot [this message]
2018-12-13 19:55 ` Dan Williams
2018-12-13 20:09 ` Dr. David Alan Gilbert
2018-12-13 20:15 ` Dan Williams
2018-12-13 20:40 ` Vivek Goyal
2018-12-13 21:18 ` Vivek Goyal
2018-12-14 10:09 ` Dr. David Alan Gilbert
2018-12-10 17:12 ` [PATCH 16/52] virtio-fs: Add VIRTIO_PCI_CAP_SHARED_MEMORY_CFG and utility to find them Vivek Goyal
2018-12-12 16:36 ` [PATCH] virtio-fs: fix semicolon.cocci warnings kbuild test robot
2018-12-12 16:36 ` [PATCH 16/52] virtio-fs: Add VIRTIO_PCI_CAP_SHARED_MEMORY_CFG and utility to find them kbuild test robot
2018-12-10 17:12 ` [PATCH 17/52] virtio-fs: Retrieve shm capabilities for cache Vivek Goyal
2018-12-10 17:12 ` [PATCH 18/52] virtio-fs: Map cache using the values from the capabilities Vivek Goyal
2018-12-13 9:10 ` David Hildenbrand
2018-12-13 9:13 ` Dr. David Alan Gilbert
2018-12-13 9:34 ` David Hildenbrand
2018-12-13 10:00 ` Dr. David Alan Gilbert
2018-12-13 11:26 ` David Hildenbrand
2018-12-13 12:15 ` Dr. David Alan Gilbert
2018-12-13 12:24 ` David Hildenbrand
2018-12-13 12:38 ` Cornelia Huck
2018-12-14 13:44 ` Stefan Hajnoczi
2018-12-14 13:50 ` Cornelia Huck
2018-12-14 14:06 ` Dr. David Alan Gilbert
2018-12-17 11:25 ` Stefan Hajnoczi
2018-12-17 10:53 ` David Hildenbrand
2018-12-17 14:56 ` Stefan Hajnoczi
2018-12-18 17:13 ` Cornelia Huck
2018-12-18 17:25 ` David Hildenbrand
2019-01-02 10:24 ` Stefan Hajnoczi
2019-03-17 0:33 ` Liu Bo
2019-03-20 10:42 ` Dr. David Alan Gilbert
2019-03-17 0:35 ` [PATCH] virtio-fs: fix multiple tag support Liu Bo
2019-03-19 20:26 ` Vivek Goyal
2019-03-20 2:04 ` Liu Bo
2018-12-10 17:12 ` [PATCH 19/52] virito-fs: Make dax optional Vivek Goyal
2018-12-10 17:12 ` [PATCH 20/52] Limit number of pages returned by direct_access() Vivek Goyal
2018-12-10 17:12 ` [PATCH 21/52] fuse: Introduce fuse_dax_mapping Vivek Goyal
2018-12-10 17:12 ` [PATCH 22/52] Create a list of free memory ranges Vivek Goyal
2018-12-11 17:44 ` kbuild test robot
2018-12-15 19:22 ` kbuild test robot
2018-12-10 17:12 ` [PATCH 23/52] fuse: simplify fuse_fill_super_common() calling Vivek Goyal
2018-12-10 17:12 ` [PATCH 24/52] fuse: Introduce setupmapping/removemapping commands Vivek Goyal
2018-12-10 17:12 ` [PATCH 25/52] Introduce interval tree basic data structures Vivek Goyal
2018-12-10 17:12 ` [PATCH 26/52] fuse: Implement basic DAX read/write support commands Vivek Goyal
2018-12-10 17:12 ` [PATCH 27/52] fuse: Maintain a list of busy elements Vivek Goyal
2018-12-10 17:12 ` [PATCH 28/52] Do fallocate() to grow file before mapping for file growing writes Vivek Goyal
2018-12-11 6:13 ` kbuild test robot
2018-12-11 6:20 ` kbuild test robot
2018-12-10 17:12 ` [PATCH 29/52] fuse: add DAX mmap support Vivek Goyal
2018-12-10 17:12 ` [PATCH 30/52] fuse: delete dentry if timeout is zero Vivek Goyal
2018-12-10 17:12 ` [PATCH 31/52] dax: Pass dax_dev to dax_writeback_mapping_range() Vivek Goyal
2018-12-11 6:12 ` kbuild test robot
2018-12-11 17:38 ` kbuild test robot
2018-12-10 17:12 ` [PATCH 32/52] fuse: Define dax address space operations Vivek Goyal
2018-12-10 17:12 ` [PATCH 33/52] fuse, dax: Take ->i_mmap_sem lock during dax page fault Vivek Goyal
2018-12-10 17:13 ` [PATCH 34/52] fuse: Add logic to free up a memory range Vivek Goyal
2018-12-10 17:13 ` [PATCH 35/52] fuse: Add logic to do direct reclaim of memory Vivek Goyal
2018-12-10 17:13 ` [PATCH 36/52] fuse: Kick worker when free memory drops below 20% of total ranges Vivek Goyal
2018-12-10 17:13 ` [PATCH 37/52] fuse: multiplex cached/direct_io/dax file operations Vivek Goyal
2018-12-10 17:13 ` [PATCH 38/52] Dispatch FORGET requests later instead of dropping them Vivek Goyal
2018-12-10 17:13 ` [PATCH 39/52] Release file in process context Vivek Goyal
2018-12-10 17:13 ` [PATCH 40/52] fuse: Do not block on inode lock while freeing memory range Vivek Goyal
2018-12-10 17:13 ` [PATCH 41/52] fuse: Reschedule dax free work if too many EAGAIN attempts Vivek Goyal
2018-12-10 17:13 ` [PATCH 42/52] fuse: Wait for memory ranges to become free Vivek Goyal
2018-12-10 17:13 ` [PATCH 43/52] fuse: Take inode lock for dax inode truncation Vivek Goyal
2018-12-10 17:13 ` [PATCH 44/52] fuse: Clear setuid bit even in direct I/O path Vivek Goyal
2018-12-10 17:13 ` [PATCH 45/52] virtio: Free fuse devices on umount Vivek Goyal
2018-12-10 17:13 ` [PATCH 46/52] virtio-fs: Retrieve shm capabilities for version table Vivek Goyal
2018-12-10 17:13 ` [PATCH 47/52] virtio-fs: Map using the values from the capabilities Vivek Goyal
2018-12-10 17:13 ` [PATCH 48/52] virtio-fs: pass version table pointer to fuse Vivek Goyal
2018-12-10 17:13 ` [PATCH 49/52] fuse: don't crash if version table is NULL Vivek Goyal
2018-12-10 17:13 ` [PATCH 50/52] fuse: add shared version support (virtio-fs only) Vivek Goyal
2018-12-10 17:13 ` [PATCH 51/52] fuse: shared version cleanups Vivek Goyal
2018-12-10 17:13 ` [PATCH 52/52] fuse: fix fuse_permission() for the default_permissions case Vivek Goyal
2018-12-19 21:25 ` kbuild test robot
2018-12-11 12:54 ` [PATCH 00/52] [RFC] virtio-fs: shared file system for virtual machines Stefan Hajnoczi
2018-12-12 20:30 ` Konrad Rzeszutek Wilk
2018-12-12 21:22 ` Vivek Goyal
2019-02-12 15:56 ` Aneesh Kumar K.V
2019-02-12 18:57 ` Vivek Goyal
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=201812140034.LnsOOypS%fengguang.wu@intel.com \
--to=lkp@intel.com \
--cc=dgilbert@redhat.com \
--cc=kbuild-all@01.org \
--cc=kvm@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=miklos@szeredi.hu \
--cc=stefanha@redhat.com \
--cc=sweil@redhat.com \
--cc=swhiteho@redhat.com \
--cc=vgoyal@redhat.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).