For me share diff at p2pools is too big, so i prefer mpos pool.
You can set your own diff for any p2pool, so even that is a positive :-) The magic number is 0.00000116 for each kh/s of hashing power you have, so if you mine at 50kh/s simply add 50 x 0.0000016 = 0.000058 to your receive address and you will receive only shares adjusted to your diff level, syntax for this is:
Receiveaddress+0.000058 so without spaces