• Oded Gabbay's avatar
    habanalabs: create two char devices per ASIC · 4d6a7751
    Oded Gabbay authored
    This patch changes the driver to create two char devices for each ASIC
    it discovers. This is done to allow system/monitoring applications to
    query the device for stats, information, idle state and more, while also
    allowing the deep-learning application to send work to the ASIC.
    
    One char device is the original device, hlX. IOCTL calls through this
    device file can perform any task on the device (compute, memory, queries).
    The open function for this device will fail if it was called before but
    the file-descriptor it created was not completely released yet (the
    release callback function is not called from the kernel until all
    instances of that FD are closed). The driver needs to keep this behavior
    to support backward compatibility with existing userspace, which count
    that the open will fail if the device is "occupied".
    
    The second char device is called "hl_controlDx", where x is the same index
    of the main device with a minor number of the original char device + 1.
    Applications that open this device can only call the INFO IOCTL. There is
    no limitation on the number of applications opening this device.
    Signed-off-by: default avatarOded Gabbay <oded.gabbay@gmail.com>
    Reviewed-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    4d6a7751
habanalabs_drv.c 10.8 KB