try to fill buffer more completely