On Sun, Feb 12, 2023 at 10:44:35PM +0200, Oded Gabbay wrote: > From: Tomer Tayar <ttayar@xxxxxxxxx> > > When user closes the device file descriptor, it is checked whether the > device is still in use, and a message is printed if it is. I guess this is only for debugging your user-space component? Because kernel driver should not make any assumption about user-space behavior. Closing whenever user wants should be no problem. > +static void print_device_in_use_info(struct hl_device *hdev, const char *message) > +{ > + u32 active_cs_num, dmabuf_export_cnt; > + char buf[64], *buf_ptr = buf; > + size_t buf_size = sizeof(buf); > + bool unknown_reason = true; > + > + active_cs_num = hl_get_active_cs_num(hdev); > + if (active_cs_num) { > + unknown_reason = false; > + compose_device_in_use_info(&buf_ptr, &buf_size, " [%u active CS]", active_cs_num); > + } > + > + dmabuf_export_cnt = atomic_read(&hdev->dmabuf_export_cnt); > + if (dmabuf_export_cnt) { > + unknown_reason = false; > + compose_device_in_use_info(&buf_ptr, &buf_size, " [%u exported dma-buf]", > + dmabuf_export_cnt); > + } > + > + if (unknown_reason) > + compose_device_in_use_info(&buf_ptr, &buf_size, " [unknown reason]"); > + > + dev_notice(hdev->dev, "%s%s\n", message, buf); why not print counters directly, i.e. "active cs count %u, dmabuf export count %u" ? > if (!hl_hpriv_put(hpriv)) { > - dev_notice(hdev->dev, "User process closed FD but device still in use\n"); > + print_device_in_use_info(hdev, "User process closed FD but device still in use"); > hl_device_reset(hdev, HL_DRV_RESET_HARD); You really need reset here ? Regards Stanislaw