Subdivision modifier fails on cylinder
No need to use Subdiv modifier which gives you more details but not necessarily smooth shading (unless you have high enough subdivision which is overkill).

How about starting from a cylinder, inset, extrude down, shade smooth and auto-smooth?