You can get detailed information on the path MTU for a host as follows. Note that the cache information must be populated first. This testing was performed with a 3.13 Ubuntu kernel. I first validate the current cache for a host, I haven't communicated with it and have no information:
johnf@mtutest:~$ ip ro get 192.168.3.48
192.168.3.48 dev eth0 src 192.168.1.22
cache
I then try to ping it with a packet larger than the MTU (but not so large that the packet must be fragmented by the OS). You may miss the first few pings when you test, you should see the Frag needed message.
johnf@mtutest:~$ ping -s 1460 192.168.3.48 -c 10
PING 192.168.3.48 (192.168.3.48) 1460(1488) bytes of data.
From 192.168.2.0 icmp_seq=1 Frag needed and DF set (mtu = 1220)
1468 bytes from 192.168.2.0: icmp_seq=2 ttl=252 time=1973 ms
[...]
--- 192.168.3.48 ping statistics ---
10 packets transmitted, 9 received, +1 errors, 10% packet loss, time 9016ms
rtt min/avg/max/mdev = 95.681/516.815/1973.697/568.969 ms, pipe 2
After you receive the ICMP MTU Exceeded message the kernel should adjust your route cache to reflect the path limitations:
johnf@mtutest:~$ ip ro get 192.168.3.48
192.168.3.48 dev eth0 src 192.168.1.22
cache expires 588sec mtu 1220