The following commands are used to mark positions in the buffer.
Store current point in the register ch. ch must be a lower-case ASCII letter.
Set mark at the beginning of current buffer.
Set mark at the end of current buffer.
Set mark at point.
Jump to mark (and pop mark off the mark ring).
Emacs uses the mark ring to store marked positions. The commands m <, m > and m . not only set mark but also add it as the latest element of the mark ring (replacing the oldest one). By repeating the command m , you can visit older and older marked positions. You will eventually be in a loop as the mark ring is a ring.