Group,

        Their seems to be three large single allocation sections
        within the zfs code, local buf_init(), that perform
        KMEM_NOSLEEPs. Based on failure they drop to 1/2 of
        value and retry until succeed.

        Would't this type of logic force a low memory condition
        if they were set too high? IMO, this would allow these
        three allocs to consume basicly all of kmem alloc'able
        memory and generate no warning that NOSLEEP memory
        allocations had failed. The single kmem_sleeps could
        then consume the rest with large mem allocs and forced
        reallocations.

        Thus, IMO, since they originate at a single location,
        return based on failure, generate a BAD CONFIGURATION
        message,  and retry with a medium amount of memory
        consumption, and if that failed, retry with a low
        ZFS memory consumption mode.

        On the other had if one wishes to repeat the failed
        allocations without medium or low memory set configs,
        dropping to a conservative 1/8th each time could 
        also prevent low memory conditions..

        Mitchell Erblich
        ------------------

Reply via email to