dm-vdo / kvdo

A kernel module which provide a pool of deduplicated and/or compressed block storage.
GNU General Public License v2.0
240 stars 46 forks source link

KVDO build fails in kernel 4.17.0+ #15

Closed daedalus closed 6 years ago

daedalus commented 6 years ago

Hi I'm trying to build kvdo for the linux kernel 4.17.0-3 and it fails, it also happens with 4.18.0-2. There is no problem with kernel 4.16.0-trunk-amd64 I'm thinking that it is not a duplicate of the issue13

I'm on Version 6.2.0.4 gcc version 8.2.0 (Debian 8.2.0-7)

Thanks

dclavijo@testing4:~/code/kvdo$ make -C /usr/src/linux-headers-4.17.0-3-amd64/ M=$(pwd) -j 16
make: Entering directory '/usr/src/linux-headers-4.17.0-3-amd64'
  CC [M]  /home/dclavijo/code/kvdo/uds/indexLayoutLinuxKernel.o
  CC [M]  /home/dclavijo/code/kvdo/uds/indexZone.o
  CC [M]  /home/dclavijo/code/kvdo/uds/permassertLinuxKernel.o
  CC [M]  /home/dclavijo/code/kvdo/uds/stringUtils.o
  CC [M]  /home/dclavijo/code/kvdo/uds/regionIndexState.o
  CC [M]  /home/dclavijo/code/kvdo/uds/indexConfig.o
  CC [M]  /home/dclavijo/code/kvdo/uds/deltaMemory.o
  CC [M]  /home/dclavijo/code/kvdo/uds/sparseCache.o
  CC [M]  /home/dclavijo/code/kvdo/uds/stringLinuxKernel.o
  CC [M]  /home/dclavijo/code/kvdo/uds/threadOnce.o
  CC [M]  /home/dclavijo/code/kvdo/uds/localIndexRouter.o
  CC [M]  /home/dclavijo/code/kvdo/uds/udsModule.o
  CC [M]  /home/dclavijo/code/kvdo/uds/threadCondVarLinuxKernel.o
  CC [M]  /home/dclavijo/code/kvdo/uds/cacheCounters.o
  CC [M]  /home/dclavijo/code/kvdo/uds/masterIndexOps.o
  CC [M]  /home/dclavijo/code/kvdo/uds/buffer.o
  CC [M]  /home/dclavijo/code/kvdo/uds/zone.o
  CC [M]  /home/dclavijo/code/kvdo/uds/threadRegistry.o
  CC [M]  /home/dclavijo/code/kvdo/uds/threadsLinuxKernel.o
  CC [M]  /home/dclavijo/code/kvdo/uds/regionIndexComponent.o
  CC [M]  /home/dclavijo/code/kvdo/uds/indexSession.o
  CC [M]  /home/dclavijo/code/kvdo/uds/indexComponent.o
  CC [M]  /home/dclavijo/code/kvdo/uds/requestQueue.o
  CC [M]  /home/dclavijo/code/kvdo/uds/chapterWriter.o
  CC [M]  /home/dclavijo/code/kvdo/uds/volume.o
  CC [M]  /home/dclavijo/code/kvdo/uds/openChapter.o
  CC [M]  /home/dclavijo/code/kvdo/uds/indexInternals.o
  CC [M]  /home/dclavijo/code/kvdo/uds/indexCheckpoint.o
  CC [M]  /home/dclavijo/code/kvdo/uds/parameter.o
  CC [M]  /home/dclavijo/code/kvdo/uds/udsMain.o
  CC [M]  /home/dclavijo/code/kvdo/uds/singleFileLayout.o
  CC [M]  /home/dclavijo/code/kvdo/uds/logger.o
  CC [M]  /home/dclavijo/code/kvdo/uds/uds.mod.o
  CC [M]  /home/dclavijo/code/kvdo/uds/pageCache.o
  CC [M]  /home/dclavijo/code/kvdo/uds/threadSemaphoreLinuxKernel.o
  CC [M]  /home/dclavijo/code/kvdo/uds/timeUtils.o
  CC [M]  /home/dclavijo/code/kvdo/uds/sysfs.o
  CC [M]  /home/dclavijo/code/kvdo/uds/openChapterZone.o
  CC [M]  /home/dclavijo/code/kvdo/uds/cachedChapterIndex.o
  CC [M]  /home/dclavijo/code/kvdo/uds/memoryLinuxKernel.o
  CC [M]  /home/dclavijo/code/kvdo/uds/searchList.o
  CC [M]  /home/dclavijo/code/kvdo/uds/linuxIORegion.o
  CC [M]  /home/dclavijo/code/kvdo/uds/block.o
  CC [M]  /home/dclavijo/code/kvdo/uds/session.o
  CC [M]  /home/dclavijo/code/kvdo/uds/udsState.o
  CC [M]  /home/dclavijo/code/kvdo/uds/deltaIndex.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/slabScrubber.o
  CC [M]  /home/dclavijo/code/kvdo/uds/errors.o
  CC [M]  /home/dclavijo/code/kvdo/uds/bufferedReader.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/blockMapPage.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/vio.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/flush.o
  CC [M]  /home/dclavijo/code/kvdo/uds/geometry.o
  CC [M]  /home/dclavijo/code/kvdo/uds/indexStateData.o
  CC [M]  /home/dclavijo/code/kvdo/uds/context.o
  CC [M]  /home/dclavijo/code/kvdo/uds/hashUtils.o
  CC [M]  /home/dclavijo/code/kvdo/uds/permassert.o
  CC [M]  /home/dclavijo/code/kvdo/uds/indexRouter.o
In file included from /home/dclavijo/code/kvdo/uds/linuxIORegion.c:25:0:
/usr/src/linux-headers-4.17.0-3-common/include/linux/blkdev.h:1037:22: error: expected identifier before numeric constant
 #define SECTOR_SHIFT 9
                      ^
/home/dclavijo/code/kvdo/uds/linuxIORegion.c:46:8: note: in expansion of macro ‘SECTOR_SHIFT’
 enum { SECTOR_SHIFT = 9 };
        ^~~~~~~~~~~~
/usr/src/linux-headers-4.17.0-3-common/include/linux/blkdev.h:1040:21: error: expected identifier before ‘(’ token
 #define SECTOR_SIZE (1 << SECTOR_SHIFT)
                     ^
/home/dclavijo/code/kvdo/uds/linuxIORegion.c:47:8: note: in expansion of macro ‘SECTOR_SIZE’
 enum { SECTOR_SIZE  = 1 << SECTOR_SHIFT };
        ^~~~~~~~~~~
make[4]: *** [/usr/src/linux-headers-4.17.0-3-common/scripts/Makefile.build:317: /home/dclavijo/code/kvdo/uds/linuxIORegion.o] Error 1
make[4]: *** Waiting for unfinished jobs....
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/partitionCopy.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/adminCompletion.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/vioWrite.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/vioRead.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/extent.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/readOnlyRebuild.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/threadConfig.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/referenceOperation.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/blockMapRecovery.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/superBlock.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/vdoRecovery.o
make[3]: *** [/usr/src/linux-headers-4.17.0-3-common/scripts/Makefile.build:564: /home/dclavijo/code/kvdo/uds] Error 2
make[3]: *** Waiting for unfinished jobs....
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/lockCounter.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/lz4.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/physicalZone.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/readOnlyModeContext.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/vioPool.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/upgrade.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/dataVIO.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/pbnLock.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/slabJournalEraser.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/slabCompletion.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/completion.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/vdoResizeLogical.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/logicalZone.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/trace.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/blockAllocator.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/vdoLayout.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/vdoResize.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/vdoDebug.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/packer.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/physicalLayer.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/pbnLockPool.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/compressedBlock.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/refCounts.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/allocatingVIO.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/recoveryUtils.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/priorityTable.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/slabJournal.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/objectPool.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/slabSummary.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/intMap.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/slabRebuild.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/vdoClose.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/hashZone.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/volumeGeometry.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/vdoPageCache.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/statusCodes.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/threadData.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/blockMap.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/referenceCountRebuild.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/waitQueue.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/forest.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/vdo.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/slabDepot.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/hashLock.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/vdoLoad.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/blockMapTree.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/slab.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/pointerMap.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/header.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/heap.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/compressionState.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/dirtyLists.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/fixedLayout.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/recoveryJournal.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/base/constants.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/workQueueHandle.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/poolSysfs.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/kvdoFlush.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/kernelVDO.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/workItemStats.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/dump.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/memoryUsage.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/threads.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/bio.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/udsIndex.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/ktrace.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/readCache.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/bufferPool.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/kvio.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/deadlockQueue.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/sysfs.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/deviceConfig.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/errors.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/workQueueStats.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/kernelLayer.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/limiter.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/dmvdo.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/poolSysfsStats.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/vdoStringUtils.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/verify.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/workQueue.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/ioSubmitter.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/dedupeIndex.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/dataKVIO.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/histogram.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/logger.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/workQueueSysfs.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/batchProcessor.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/deviceRegistry.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/statusProcfs.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/threadDevice.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/funnelQueue.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/threadRegistry.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/kernel/instanceNumber.o
  CC [M]  /home/dclavijo/code/kvdo/vdo/../uds/murmur/MurmurHash3.o
  AR      /home/dclavijo/code/kvdo/vdo/built-in.a
  LD [M]  /home/dclavijo/code/kvdo/vdo/kvdo.o
make[2]: *** [/usr/src/linux-headers-4.17.0-3-common/Makefile:1585: _module_/home/dclavijo/code/kvdo] Error 2
make[1]: *** [Makefile:146: sub-make] Error 2
make: *** [Makefile:8: all] Error 2
make: Leaving directory '/usr/src/linux-headers-4.17.0-3-amd64'
bgurney-rh commented 6 years ago

Hi Dario,

Linux 4.17 was released in early June 2018, which was after VDO 6.2.0.4 was released (April 2018).

Can you try with the latest kvdo version (or at least 6.2.0.109)?

daedalus commented 6 years ago

My mistake, I tought that I did a pull before compiling. Thank you!