Thread (2 messages) 2 messages, 2 authors, 2018-06-12

Re: [PATCH 1/2] Convert target drivers to use sbitmap

From: Matthew Wilcox <willy@infradead.org>
Date: 2018-06-12 18:09:36
Also in: kvm, linux-scsi, linux-usb, lkml, netdev, target-devel

On Tue, Jun 12, 2018 at 04:32:03PM +0000, Bart Van Assche wrote:
On Tue, 2018-06-12 at 09:15 -0700, Matthew Wilcox wrote:
quoted
On Tue, Jun 12, 2018 at 03:22:42PM +0000, Bart Van Assche wrote:
quoted
Please introduce functions in the target core for allocating and freeing a tag
instead of spreading the knowledge of how to allocate and free tags over all
target drivers.
I can't without doing an unreasonably large amount of work on drivers that
I have no way to test.  Some of the drivers have the se_cmd already; some
of them don't.  I'd be happy to introduce a common function for freeing
a tag.
Which target drivers are you referring to? If you are referring to the sbp driver:
I think that driver is dead and can be removed from the kernel tree. I even don't
know whether that driver ever has had any users other than the developer of that
driver.
For example tcm_fc:

        tag = sbitmap_queue_get(&se_sess->sess_tag_pool, &cpu);
        if (tag < 0)
                goto busy;

        cmd = &((struct ft_cmd *)se_sess->sess_cmd_map)[tag];

or qla2xxx:

        tag = sbitmap_queue_get(&se_sess->sess_tag_pool, &cpu);
        if (tag < 0)
                return NULL;

        cmd = &((struct qla_tgt_cmd *)se_sess->sess_cmd_map)[tag];

The core doesn't know at what offset from the pointer to store the tag
& cpu.  Only the individual drivers know their cmd layout.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help