On Sun, May 03, 2009 at 02:07:32PM +0100, Hugh Dickins wrote: > I notice OCZ hope to have updated Vertex firmware mid-May, > such that their TRIM support matches up with (y)ours. Excellent. > You have GFP_KERNEL allocations in your discard_fn()s. I believe that > allocations down at that level will need to be GFP_NOIO - the bio mempool > might be empty by this point, you don't want memory allocation to get into > submitting even more I/O to satisfy your discard_fn(). Does it need its > own mempool of reserve pages? My guess is that you can get away without > that, since a failed discard, though regrettable, loses no data. You make a good point. There's definitely still work to be done around error handling. OTOH, we could always do what IDE does ... static void idedisk_prepare_flush(struct request_queue *q, struct request *rq) { ide_drive_t *drive = q->queuedata; struct ide_cmd *cmd = kmalloc(sizeof(*cmd), GFP_ATOMIC); /* FIXME: map struct ide_taskfile on rq->cmd[] */ BUG_ON(cmd == NULL); -- Matthew Wilcox Intel Open Source Technology Centre "Bill, look, we understand that you're interested in selling us this operating system, but compare it to ours. We can't possibly take such a retrograde step." -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html