mirror of
				https://git.proxmox.com/git/mirror_zfs.git
				synced 2025-10-26 18:05:04 +03:00 
			
		
		
		
	Linux 5.6 compat: ktime_get_raw_ts64()
The getrawmonotonic() and getrawmonotonic64() interfaces have been fully retired. Update gethrtime() to use the replacement interface ktime_get_raw_ts64() which was introduced in the 4.18 kernel. Reviewed-by: Tony Hutter <hutter2@llnl.gov> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #10052 Closes #10064
This commit is contained in:
		
							parent
							
								
									cf2a3464e9
								
							
						
					
					
						commit
						ba2cf53545
					
				
							
								
								
									
										55
									
								
								config/kernel-ktime.m4
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								config/kernel-ktime.m4
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,55 @@ | ||||
| dnl # | ||||
| dnl # 4.18: ktime_get_coarse_real_ts64() replaces current_kernel_time64(). | ||||
| dnl # | ||||
| AC_DEFUN([ZFS_AC_KERNEL_SRC_KTIME_GET_COARSE_REAL_TS64], [ | ||||
| 	ZFS_LINUX_TEST_SRC([ktime_get_coarse_real_ts64], [ | ||||
| 		#include <linux/mm.h> | ||||
| 	], [ | ||||
| 		struct timespec64 ts; | ||||
| 		ktime_get_coarse_real_ts64(&ts); | ||||
| 	]) | ||||
| ]) | ||||
| 
 | ||||
| AC_DEFUN([ZFS_AC_KERNEL_KTIME_GET_COARSE_REAL_TS64], [ | ||||
| 	AC_MSG_CHECKING([whether ktime_get_coarse_real_ts64() exists]) | ||||
| 	ZFS_LINUX_TEST_RESULT([ktime_get_coarse_real_ts64], [ | ||||
| 		AC_MSG_RESULT(yes) | ||||
| 		AC_DEFINE(HAVE_KTIME_GET_COARSE_REAL_TS64, 1, | ||||
| 		    [ktime_get_coarse_real_ts64() exists]) | ||||
| 	], [ | ||||
| 		AC_MSG_RESULT(no) | ||||
| 	]) | ||||
| ]) | ||||
| 
 | ||||
| dnl # | ||||
| dnl # 4.18: ktime_get_raw_ts64() replaces getrawmonotonic64(). | ||||
| dnl # | ||||
| AC_DEFUN([ZFS_AC_KERNEL_SRC_KTIME_GET_RAW_TS64], [ | ||||
| 	ZFS_LINUX_TEST_SRC([ktime_get_raw_ts64], [ | ||||
| 		#include <linux/mm.h> | ||||
| 	], [ | ||||
| 		struct timespec64 ts; | ||||
| 		ktime_get_raw_ts64(&ts); | ||||
| 	]) | ||||
| ]) | ||||
| 
 | ||||
| AC_DEFUN([ZFS_AC_KERNEL_KTIME_GET_RAW_TS64], [ | ||||
| 	AC_MSG_CHECKING([whether ktime_get_raw_ts64() exists]) | ||||
| 	ZFS_LINUX_TEST_RESULT([ktime_get_raw_ts64], [ | ||||
| 		AC_MSG_RESULT(yes) | ||||
| 		AC_DEFINE(HAVE_KTIME_GET_RAW_TS64, 1, | ||||
| 		    [ktime_get_raw_ts64() exists]) | ||||
| 	], [ | ||||
| 		AC_MSG_RESULT(no) | ||||
| 	]) | ||||
| ]) | ||||
| 
 | ||||
| AC_DEFUN([ZFS_AC_KERNEL_SRC_KTIME], [ | ||||
| 	ZFS_AC_KERNEL_SRC_KTIME_GET_COARSE_REAL_TS64 | ||||
| 	ZFS_AC_KERNEL_SRC_KTIME_GET_RAW_TS64 | ||||
| ]) | ||||
| 
 | ||||
| AC_DEFUN([ZFS_AC_KERNEL_KTIME], [ | ||||
| 	ZFS_AC_KERNEL_KTIME_GET_COARSE_REAL_TS64 | ||||
| 	ZFS_AC_KERNEL_KTIME_GET_RAW_TS64 | ||||
| ]) | ||||
| @ -1,23 +0,0 @@ | ||||
| dnl # | ||||
| dnl # 4.18: ktime_get_coarse_real_ts64() added.  Use it in place of | ||||
| dnl # current_kernel_time64(). | ||||
| dnl # | ||||
| AC_DEFUN([ZFS_AC_KERNEL_SRC_KTIME_GET_COARSE_REAL_TS64], [ | ||||
| 	ZFS_LINUX_TEST_SRC([ktime_get_coarse_real_ts64], [ | ||||
| 		#include <linux/mm.h> | ||||
| 	], [ | ||||
| 		struct timespec64 ts; | ||||
| 		ktime_get_coarse_real_ts64(&ts); | ||||
| 	]) | ||||
| ]) | ||||
| 
 | ||||
| AC_DEFUN([ZFS_AC_KERNEL_KTIME_GET_COARSE_REAL_TS64], [ | ||||
| 	AC_MSG_CHECKING([whether ktime_get_coarse_real_ts64() exists]) | ||||
| 	ZFS_LINUX_TEST_RESULT([ktime_get_coarse_real_ts64], [ | ||||
| 		AC_MSG_RESULT(yes) | ||||
| 		AC_DEFINE(HAVE_KTIME_GET_COARSE_REAL_TS64, 1, | ||||
| 		    [ktime_get_coarse_real_ts64() exists]) | ||||
| 	], [ | ||||
| 		AC_MSG_RESULT(no) | ||||
| 	]) | ||||
| ]) | ||||
| @ -137,7 +137,7 @@ AC_DEFUN([ZFS_AC_KERNEL_TEST_SRC], [ | ||||
| 	ZFS_AC_KERNEL_SRC_CURRENT_TIME | ||||
| 	ZFS_AC_KERNEL_SRC_USERNS_CAPABILITIES | ||||
| 	ZFS_AC_KERNEL_SRC_IN_COMPAT_SYSCALL | ||||
| 	ZFS_AC_KERNEL_SRC_KTIME_GET_COARSE_REAL_TS64 | ||||
| 	ZFS_AC_KERNEL_SRC_KTIME | ||||
| 	ZFS_AC_KERNEL_SRC_TOTALRAM_PAGES_FUNC | ||||
| 	ZFS_AC_KERNEL_SRC_TOTALHIGH_PAGES | ||||
| 	ZFS_AC_KERNEL_SRC_KSTRTOUL | ||||
| @ -254,7 +254,7 @@ AC_DEFUN([ZFS_AC_KERNEL_TEST_RESULT], [ | ||||
| 	ZFS_AC_KERNEL_CURRENT_TIME | ||||
| 	ZFS_AC_KERNEL_USERNS_CAPABILITIES | ||||
| 	ZFS_AC_KERNEL_IN_COMPAT_SYSCALL | ||||
| 	ZFS_AC_KERNEL_KTIME_GET_COARSE_REAL_TS64 | ||||
| 	ZFS_AC_KERNEL_KTIME | ||||
| 	ZFS_AC_KERNEL_TOTALRAM_PAGES_FUNC | ||||
| 	ZFS_AC_KERNEL_TOTALHIGH_PAGES | ||||
| 	ZFS_AC_KERNEL_KSTRTOUL | ||||
|  | ||||
| @ -105,8 +105,13 @@ gethrestime_sec(void) | ||||
| static inline hrtime_t | ||||
| gethrtime(void) | ||||
| { | ||||
| #if defined(HAVE_KTIME_GET_RAW_TS64) | ||||
| 	struct timespec64 ts; | ||||
| 	ktime_get_raw_ts64(&ts); | ||||
| #else | ||||
| 	struct timespec ts; | ||||
| 	getrawmonotonic(&ts); | ||||
| #endif | ||||
| 	return (((hrtime_t)ts.tv_sec * NSEC_PER_SEC) + ts.tv_nsec); | ||||
| } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Brian Behlendorf
						Brian Behlendorf