1. partitioning your drive with 10% less space
2. using the mfr's over-provisioning tool to block off 10% space
3. keeping 10% space free for the life of the ssd
1 and 3 are essentially the same thing, assuming TRIM in both cases to explicitly mark the blocks as free. Assuming the controller support dynamic overprovisioning (using the extra free pages that aren't explicitly reserved for overprovisioning), the extra free space can be used as such while it's available. The partitioning method is used as either a "set it and forget it" safeguard against 100% full, or for situations where TRIM isn't available.
IIRC most modern SSDs support dynamic overprovisioning now. I'm also glossing a bit over some of the nuances, but this should be good enough.