[stgt] [PATCH 1/1] nonblocking epoll_wait loop, sched events, ISER/IB polling

FUJITA Tomonori fujita.tomonori at lab.ntt.co.jp
Tue Sep 23 10:06:54 CEST 2008

On Mon, 22 Sep 2008 16:52:28 -0400
Pete Wyckoff <pw at padd.com> wrote:

> ogerlitz at voltaire.com wrote on Sun, 21 Sep 2008 10:06 +0300:
> > Pete Wyckoff wrote:
> >>> +static void iser_poll_cq_normal(struct iser_device *dev) +{
> >>> +        int ret;
> >>> +
> >>> +        ret = iser_poll_cq(dev,8);
> >>> +        if (ret < 0)
> >>> +		exit(1);
> >>
> >> Please eprintf() then exit.  
> > I see now that the iscsi rdma code has many exit() calls, where the  
> > iscsi tcp has none and tgtd.c has one (after the epoll_wait, the rest  
> > are in the init time). Sounds like an issue orthogonal to this patch,  
> > but production wise, I don't think anyone wants their iscsi target  
> > process to disappear just b/c something went wrong...
> Yes, you're absolutely right.  My suggestion above was just to
> figure out "what went wrong" before the exit.  But if we could
> instead recover gracefully, that would be much better.
> Unfortunately most of the exit()s reveal "bugs" in the code, in
> particular, unhandled issues due to resource exhaustion.

I think that iser code should do better in resource exhaustion
situations instead of just calling exit().

>  The others
> come from "can't happen" situations that could indicate a hardware
> or firmware fault.  Not sure how to recover gracefully there.

This is kinda BUG_ON(). We should print all we can get here and call
To unsubscribe from this list: send the line "unsubscribe stgt" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

More information about the stgt mailing list