crush: generalize descend_once