Faits:
A. C._, né en 1949, a travaillé en qualité de bagagiste à l'Hôtel X._ à N._. Souffrant d'un carcinome épidermoïde du larynx T3N1 traité par association de radio- et chimiothérapie de février à fin mars 2005, il s'est annoncé à l'assurance-invalidité le 11 octobre 2005. Son médecin traitant, le docteur Q._, spécialiste en otorhinolaryngologie, a diagnostiqué une dysphonie, une dyspnée fluctuante et une dysphagie; il a précisé que l'incapacité de travail était totale depuis décembre 2004 (rapport du 12 janvier 2006).
Le docteur M._, spécialiste en chirurgie et médecin au SMR, a procédé à un examen de l'assuré le 11 janvier 2007. A son avis, l'asthénie post-radique était la principale limitation fonctionnelle, suivie de la dysphonie qui limitait les contacts verbaux. Par ailleurs, la présence de hernies inguinales limitait les efforts en Valsalva de plus de 5 kg. Une activité légère, essentiellement sédentaire, restait exigible avec une diminution de rendement de l'ordre de 30 %, cela à partir du 1er janvier 2006, soit un peu plus de six mois après la fin du traitement.
Dans un projet de décision du 21 août 2008, l'office AI a fait savoir à l'assuré qu'il envisageait de lui allouer une rente entière du 1er décembre 2005 au 31 mars 2006. L'assuré a manifesté son opposition en invoquant une aggravation de son problème pulmonaire et la présence de nodules au niveau de l'apex pulmonaire droit. Par décision du 7 octobre 2008, l'office AI a confirmé l'octroi d'une rente entière du 1er décembre 2005 au 31 mars 2006. Dès le 1er avril 2006, la comparaison des revenus laissait apparaître un taux d'invalidité de 21 %.
B. C._ a déféré cette décision au Tribunal cantonal des assurances sociales de la République et canton de Genève, en concluant à la poursuite du versement de la rente au-delà du 1er avril 2006. Au vu des nouvelles pièces médicales produites, l'office AI a proposé au tribunal cantonal de procéder à une instruction complémentaire sous la forme d'un rapport pneumologique détaillé incluant les fonctions pulmonaires et un test de marche pneumologique de 6 minutes, selon la suggestion de son service médical.
Le tribunal cantonal a recueilli plusieurs rapports du service de pneumologie de l'Hôpital Y._, dont un test de marche réalisé sous la conduite du docteur P._, spécialiste en pneumologie (examen du 2 février 2009). Dans un avis médical du 29 juin 2009, les médecins du SMR ont relevé que tous les documents confirmaient que le nodule pulmonaire avait été réséqué en tissu sain et que les fonctions pulmonaires après chirurgie étaient peu altérées.
Par jugement du 2 février 2010, la juridiction cantonale a rejeté le recours.
C. C._ interjette un recours en matière de droit public contre ce jugement dont il demande l'annulation, avec suite de frais, en concluant principalement au paiement d'une rente entière d'invalidité, subsidiairement à une demi-rente.
Par ordonnance du 10 septembre 2010, le Tribunal fédéral a rejeté la demande d'assistance judiciaire du recourant. Ce dernier a ensuite changé de mandataire.
L'intimé et l'Office fédéral des assurances sociales n'ont pas été invités à se déterminer.

Considérant en droit:
1. Le litige porte sur le taux d'invalidité du recourant, singulièrement sur son droit à une rente au-delà du 31 mars 2006.
2. Le Tribunal fédéral statue en principe sur la base des faits établis par l'autorité précédente (<ref-law>), sous réserve des cas prévus à l'<ref-law>. Le recourant ne peut critiquer la constatation de faits importants pour le jugement de la cause que si ceux-ci ont été établis en violation du droit au sens de l'<ref-law> ou de manière manifestement inexacte (<ref-law>), c'est-à-dire arbitraire (cf. Message concernant la révision totale de l'organisation judiciaire fédérale du 28 février 2001, FF 2001 p. 4135), et si la correction du vice est susceptible d'influer sur le sort de la cause. La violation peut consister en un état de fait incomplet, car l'autorité précédente viole le droit matériel en n'établissant pas tous les faits pertinents pour l'application de celui-ci. L'appréciation des preuves est arbitraire lorsqu'elle est manifestement insoutenable, en contradiction avec le dossier, ou contraire au sens de la justice et de l'équité ou lorsque l'autorité ne tient pas compte, sans raison sérieuse, d'un élément propre à modifier la décision, se trompe sur le sens et la portée de celui-ci ou, se fondant sur les éléments recueillis, en tire des constatations insoutenables (<ref-ruling> consid. 4.3 p. 62 et les références). Il appartient au recourant de démontrer le caractère arbitraire par une argumentation répondant aux exigences de l'<ref-law>, respectivement de l'<ref-law> (<ref-ruling> consid. 1.4.3 p. 254 s.).
3. Les premiers juges ont exposé correctement les règles applicables à la solution du litige, en particulier celles qui se rapportent à la question de l'appréciation des preuves et à la notion d'invalidité, si bien qu'il suffit de renvoyer au jugement attaqué (consid. 4, 5 et 7).
4. 4.1 Le recourant soutient que le test de marche effectué sous la conduite du docteur P._ ne s'est pas déroulé dans des conditions permettant d'en accréditer le résultat. Notamment, il allègue que ce médecin ne l'a pas surveillé au début du test, qu'il ignorait même que celui-ci avait débuté, et qu'il a été complètement perturbé par l'absence de contrôle et d'instruction préalable quant au chemin à parcourir et au rythme à suivre.
Ce grief, qui revient en définitive à contester la force probante du rapport du docteur P._ (du 3 février 2009), si tant est qu'on puisse le comprendre, est infondé. En effet, le recourant ne dispose pas des compétences professionnelles appropriées pour apprécier la manière dont un test de marche doit être conduit, car il n'est pas titulaire du diplôme de médecine. Par ailleurs, le docteur P._ a consigné les résultats du test et apporté un commentaire sur son déroulement sans heurt dans son rapport.
4.2 Le recourant reproche aussi au tribunal cantonal de n'avoir pas tenu compte de l'état de son poumon droit, de ses problèmes respiratoires, de la dysphonie dont il souffre, ainsi que des conséquences virtuellement cancérigènes des carcinomes constatés. Il voit en cela une appréciation arbitraire des faits de la cause (cf. <ref-law>).
Ce moyen n'est pas mieux fondé que le précédent. En effet, les juges cantonaux ont mentionné ses problèmes de santé dans l'état de fait de leur jugement, avant de discuter les avis des docteurs Q._, P._ et M._, notamment. A cette occasion, les juges ont motivé leur choix de s'en tenir aux conclusions des médecins du SMR, plutôt qu'à celles du docteur Q._.
4.3 En l'espèce, le tribunal cantonal a constaté que les fonctions pulmonaires étaient pratiquement normales (le test de marche ne présentait pas de désaturation ni de tachycardie anormale). On saisit dès lors mal en quoi le jugement attaqué serait critiquable dans la mesure où il confirme la capacité de travail totale avec une diminution de rendement de 30 % dans une activité adaptée dès le 1er janvier 2006, retenue par les médecins du SMR (jugement attaqué, consid. 6).
5. Le recourant ne soulève finalement aucun grief concret quant à l'évaluation de l'invalidité (21 %). En particulier, on ne saurait le suivre lorsqu'il soutient que les faits de la cause ne devaient pas être appréciés au regard du seul critère de la comparaison des revenus.
6. Le recourant, qui succombe, supportera les frais de la procédure (art. 66 al. 1LTF).

Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est rejeté.
2. Les frais judiciaires, arrêtés à 500 fr., sont mis à la charge du recourant.
3. Le présent arrêt est communiqué aux parties, au Tribunal cantonal des assurances sociales de la République et canton de Genève et à l'Office fédéral des assurances sociales.
Lucerne, le 6 décembre 2010
Au nom de la IIe Cour de droit social
du Tribunal fédéral suisse
Le Président: Le Greffier:
Meyer Berthoud