On Mon, Jul 26, 2021 at 08:45:24AM +0100, Edd Barrett wrote: > Hi, > > I upgraded my snapshot last week and the machine no longer suspends. I > don't know exactly which snap caused this, as I hadn't been upgrading > snaps very frequently. > > Upon running `zzz` from a terminal emulator, the screen goes black, but > the machine never enters sleep state. > > Upon hard-resetting the machine, fsck runs, so the disks can't have been > synced. > > I don't have a serial port on this machine, and I don't think I can > force console output out of a usb-serial adapter (can I?). > > dmesg follows, but please let me know what other info might be useful. > > Thanks.
on a t500 running amd64 with radeondrm0: RV635 on suspend I see ttm_copy_io_ttm_page: stub [TTM] Buffer eviction failed uhub2 detached ugen0 detached ugen1 detached uhub3 detached uhub4 detached uhub8 detached video0 detached uvideo0 detached uhub0 detached uhub5 detached uhub6 detached uhub7 detached uhub1 detached but it does suspend and resume a t42 running i386 with radeondrm0: RV200 does not hit the ttm_copy_io_ttm_page / Buffer eviction failed path with the following diff t500 suspends quicker here does it change anything on your machine? Index: sys/dev/pci/drm/include/linux/highmem.h =================================================================== RCS file: /cvs/src/sys/dev/pci/drm/include/linux/highmem.h,v retrieving revision 1.3 diff -u -p -r1.3 highmem.h --- sys/dev/pci/drm/include/linux/highmem.h 14 Jun 2020 15:20:07 -0000 1.3 +++ sys/dev/pci/drm/include/linux/highmem.h 27 Jul 2021 01:26:38 -0000 @@ -54,6 +54,21 @@ kunmap_atomic(void *addr) #endif } -#endif /* defined(__i386__) || defined(__amd64__) */ +#else /* !defined(__i386__) && !defined(__amd64__) */ + +static inline void * +kmap_atomic(struct vm_page *pg) +{ + return NULL; +} + +static inline void +kunmap_atomic(void *addr) +{ +} + +#endif + +#define kmap_atomic_prot(a, p) kmap_atomic(a) #endif Index: sys/dev/pci/drm/ttm/ttm_bo_util.c =================================================================== RCS file: /cvs/src/sys/dev/pci/drm/ttm/ttm_bo_util.c,v retrieving revision 1.28 diff -u -p -r1.28 ttm_bo_util.c --- sys/dev/pci/drm/ttm/ttm_bo_util.c 7 Jul 2021 02:38:37 -0000 1.28 +++ sys/dev/pci/drm/ttm/ttm_bo_util.c 27 Jul 2021 00:40:32 -0000 @@ -186,9 +186,6 @@ static int ttm_copy_io_ttm_page(struct t unsigned long page, pgprot_t prot) { - STUB(); - return -ENOSYS; -#ifdef notyet struct vm_page *d = ttm->pages[page]; void *dst; @@ -205,16 +202,12 @@ static int ttm_copy_io_ttm_page(struct t kunmap_atomic(dst); return 0; -#endif } static int ttm_copy_ttm_io_page(struct ttm_tt *ttm, void *dst, unsigned long page, pgprot_t prot) { - STUB(); - return -ENOSYS; -#ifdef notyet struct vm_page *s = ttm->pages[page]; void *src; @@ -231,7 +224,6 @@ static int ttm_copy_ttm_io_page(struct t kunmap_atomic(src); return 0; -#endif } int ttm_bo_move_memcpy(struct ttm_buffer_object *bo,